当我有子模板,例如 index.scala.html 和父模板 main.scala.html 时,我使用代码包含父模板:
@main("MyApp") {}
此模板包含正确。但是当我将 index.scala.html 移动到目录中时,例如Location
并尝试使用代码包含父模板:
@views.main("MyApp") {}
它不起作用。
我的views
目录的结构:
我收到错误:
[error] /Users/dev/project/app/scala/pl/moody/views/Location/index.scala.html:1: object main is not a member of package views
[error] @views.main("Moody") {
[error] ^
答案 0 :(得分:1)
您不需要使用views
前缀,它是自动导入的,所以即使将子项放在子目录中,您也应该只使用@main("MyApp")
。
答案 1 :(得分:1)
我遇到了几乎相同的问题,我通过这样的完整路径调用它解决了这个问题:
@views.html.admin("Admin Interface") {
}
尝试调用它:
@views.html.main("MyApp") {}
答案 2 :(得分:0)
好的,我找到了有效的解决方案。正确编译的html文件放在target
目录下。
就我而言target/scala-2.11/twirl/main/scala/com/myProject/views/html/main.template.scala
鉴于我现在有了这个目录,我可以将它添加到我的index.scala.html
,它看起来会
@scala.com.myProject.views.html.main("MyApp") {
}
并且相同的url将从控制器呈现html:
def index = Action {
Ok(scala.com.myProject.views.html.main("MyApp"))
}