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

scala.html模板文件未使用apply()方法编译为对象(即template.scala文件),scala,intellij-idea,twirl,Scala,Intellij Idea,Twirl,是什么使scala.html模板文件能够用apply方法编译成对象(即scala.template文件) 我在代码库中新创建的目录中添加了一个新的播放模板。如果我编译它,它不会创建scala.template文件,而是在目标目录中创建一个相同的scala.html文件 另一方面,如果我将模板添加到代码库中的另一个目录中(其中已经存在其他模板),并对其进行编译,它将使用apply方法创建一个对象 是什么使后一个目录“工作”,而不是前者 此堆栈溢出答案对此有详细解释: 总结如下: 如果模板文件位于应

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

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

另一方面,如果我将模板添加到代码库中的另一个目录中(其中已经存在其他模板),并对其进行编译,它将使用apply方法创建一个对象


是什么使后一个目录“工作”,而不是前者

此堆栈溢出答案对此有详细解释:

总结如下:

  • 如果模板文件位于应用程序目录下,则不会 不管它是否在视图目录下。那个模板 文件将自动拾取以进行编译

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

    导入play.twirl.sbt.import.TwirlKeys_

    sourceDirectories in(Compile,compileTemplates)+=文件(“额外的模板”)