首页 > 解决方案 > Twirl 模板中的反向路由不起作用

问题描述

我正在学习使用 IntelliJ IDEA 作为我的 IDE 的使用 Scala 的 Play 框架教程(Mark Lewis 的视频,一个很棒的系列!)。我注意到反向路由适用于 Controller 对象,但不适用于 Twirl 模板。我怀疑这是因为我在初始化项目时选择的包/组织结构。

我的项目结构在这里

我注意到,当我编译服务器时,我在编译的代码中看到了两个控制器目录:target/scala-XXX/routes/main/controllerstarget/scala-XXX/routes/main/com.example.candycane.controllers想知道这是否是混乱的根源。提前致谢!!

我的build.sbt文件粘贴在这里以供参考:

  .settings(commonSettings)
  .settings(
    scalaJSProjects := Seq(client),
    pipelineStages in Assets := Seq(scalaJSPipeline),
    pipelineStages := Seq(digest, gzip),
    // triggers scalaJSPipeline when using compile or continuous compilation
    compile in Compile := ((compile in Compile) dependsOn scalaJSPipeline).value,
    libraryDependencies ++= Seq(
      "com.vmunier" %% "scalajs-scripts" % "1.1.4",
      guice,
      specs2 % Test
    )
  )
  .enablePlugins(PlayScala)
  .dependsOn(sharedJvm)

lazy val client = (project in file("client"))
  .settings(commonSettings)
  .settings(
    scalaJSUseMainModuleInitializer := true,
    libraryDependencies ++= Seq(
      "org.scala-js" %%% "scalajs-dom" % "1.1.0"
    )
  )
  .enablePlugins(ScalaJSPlugin, ScalaJSWeb)
  .dependsOn(sharedJs)

lazy val shared = crossProject(JSPlatform, JVMPlatform)
  .crossType(CrossType.Pure)
  .in(file("shared"))
  .settings(commonSettings)
  .jsConfigure(_.enablePlugins(ScalaJSWeb))
lazy val sharedJvm = shared.jvm
lazy val sharedJs = shared.js

lazy val commonSettings = Seq(
  scalaVersion := "2.13.1",
  organization := "com.example"
)

标签: scalaplayframework

解决方案


推荐阅读