1

我想知道是否可以覆盖/添加到 Playframework 的模板路径?例如,默认模板在视图文件夹下查看并自动编译。这些模板可以进一步使用 URL 直接访问,无需任何额外配置。

---app
   |-controllers
   |-models
   |-templates  //How do I compile templates under this folder?
   |-views

我想知道的是,除了views使用构建过程编译的文件夹之外,是否可以添加自定义路径。或者,是否可以阻止某些模板无法通过直接 URL 访问?

提前致谢!

4

1 回答 1

1

在该app目录下,Play 应该自动编译任何看起来像 Twirl 模板的东西——也就是说,有一个注册的扩展名*.scala.html——不管它在哪个目录中。views目录只是一个约定,在一个app/templates目录下编译模板应该已经发生了。

如果您打开 SBT 提示符,您可以通过运行以下命令来验证这一点:

show twirlCompileTemplates::sourceDirectories

这应该给你类似的东西:

[info] my-project/compile:twirlCompileTemplates::sourceDirectories
[info]  List(/home/me/my-project/app)

要在文件夹添加模板目录app,您应该能够在您的build.sbt(例如,目录extra_templates)中添加类似以下内容:

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

sourceDirectories in (Compile, compileTemplates) += file("extra_templates")
于 2016-07-16T15:07:05.330 回答