我刚刚开始使用Play2.0 Framework,我正在尝试使用home/index
模板中的主模板。我遇到的问题是它在共享文件夹中找不到“main”,如果我把它取出并放在Views根目录中,那么它可以正常工作。
所以我想知道如何从main.scala.html
引用index.scala.html
?
我的文件夹结构如下:
index.scala.html
中的代码是:
@head = {
}
@content = {
<b>Home Screen</b>!!
}
ERROR: @main(title = "Home",head, content)
我得到的错误是:
not found: value main.
答案 0 :(得分:6)
您可以使用:
@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.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
包自动导入到视图中,因此您可以在任何视图中使用/app/views/tags/myTag.scala.html
语法:@tags.myTag(args)
语法。
答案 1 :(得分:1)
一旦进入视图的子文件夹,就会出现类似“伪包”的“伪包”。我不完全确定它是如何工作的但是试试这个:
@views.html.Shared.main