如何在Play Framework的任何目录中包含父模板

时间:2016-01-02 15:12:41

标签: scala playframework-2.0

当我有子模板,例如 index.scala.html 和父模板 main.scala.html 时,我使用代码包含父模板:

@main("MyApp") {}

此模板包含正确。但是当我将 index.scala.html 移动到目录中时,例如Location并尝试使用代码包含父模板:

@views.main("MyApp") {}

它不起作用。

index.scala.html

我的views目录的结构:

structure

我收到错误:

[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]        ^

3 个答案:

答案 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"))
  }