scala.html模板文件未使用apply()方法编译成对象(即template.scala文件)

时间:2017-08-22 21:27:22

标签: scala intellij-idea twirl

什么使scala.html模板文件能够使用apply方法(即scala.template文件)编译成对象?

我在我的代码库中为新创建的目录添加了一个新的Play模板。如果我编译它,它不会创建一个scala.template文件,而是在目标目录中创建一个相同的scala.html文件。

另一方面,如果我将模板添加到我的代码库中的另一个目录 - 其中已经存在其他模板 - 并编译它,它会创建一个带有apply方法的对象。

是什么使后一个目录能够工作"而不是前者?

1 个答案:

答案 0 :(得分:1)

此堆栈溢出答案有详细说明:Playframework: Custom template path

总结:

  1. 如果您的模板文件位于app目录下,则不会 无论是否在视图目录下。那个模板 文件将被自动拾取以进行编译。

  2. 但在您的情况下,如果模板文件位于不同的目录中。例如:目录名称为" extra_templates"。在这种情况下,您需要在sbt文件中添加以下内容。

    import play.twirl.sbt.Import.TwirlKeys ._

    sourceDirectories in(Compile,compileTemplates)+ = file(" extra_templates")