我刚开始使用 Play2.0 框架,我正尝试在我的 home/index
模板中使用主模板。我遇到的问题是它在 Shared 文件夹中时找不到“main”,如果我将其取出并放入 Views 根目录中,则它可以正常工作。
所以我想知道如何从 index.scala.html
引用 main.scala.html
?
我的文件夹结构如下:
- 观点
- 首页
- index.scala.html
- 共享
- main.scala.html
- 首页
我在 index.scala.html
中的代码是:
@head = {
}
@content = {
<b>Home Screen</b>!!
}
ERROR: @main(title = "Home",head, content)
我得到的错误是:
not found: value main.
最佳答案
您可以使用:
@Shared.main(title = "Home",head, content)
出于安全和性能原因,Play 将模板编译为 Scala 函数并将其存储在托管文件夹 /target/scala-2.9.1/src_managed/main/views
中,因此您可以预览它以找到正确的路径。
规则很容易查看以模式保存的文件:
/app/views/viewName.scala.ext
(其中ext
可以是html
、xml
或txt
) Play 会将 View 编译为:view.ext.viewName
- 对于
/app/views/SomeSub/OtherSub/viewName.scala.ext
它将是:view.ext.SomeSub.OtherSub.viewName
所以:
/app/views/general.scala.html = views.html.general
/app/views/Main/index.scala.html = views.html.Main.index
/app/views/Api/usersList.scala.xml = views.xml.Api.usersList
/app/views/Email/English/body.scala.txt = views.txt.Email.English.body
等...
在某些情况下,/app/views/tags
包会自动导入到 View 中,因此您可以使用 /app/views/tags/myTag.scala.html
只是在任何 View 中使用:@tags.myTag(args)
语法。
关于java - 在子文件夹中找不到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14590055/