Scala 如何在Play Framework中包含任何目录中的父模板
当我有子模板,例如index.scala.html和父模板main.scala.html时,我使用代码包括父模板:Scala 如何在Play Framework中包含任何目录中的父模板,scala,playframework-2.0,Scala,Playframework 2.0,当我有子模板,例如index.scala.html和父模板main.scala.html时,我使用代码包括父模板: @main("MyApp") {} @views.main("MyApp") {} 此模板已正确包含。但当我将index.scala.html移动到目录中时,例如Location并尝试使用代码包含父模板时: @main("MyApp") {} @views.main("MyApp") {} 它不起作用 我的视图的结构目录: 我得到一个错误: [error] /Users
@main("MyApp") {}
@views.main("MyApp") {}
此模板已正确包含。但当我将index.scala.html移动到目录中时,例如Location
并尝试使用代码包含父模板时:
@main("MyApp") {}
@views.main("MyApp") {}
它不起作用
我的视图的结构
目录:
我得到一个错误:
[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] ^
你不需要使用
视图
前缀,它是自动导入的,所以即使子目录中有子目录,你也应该只使用@main(“MyApp”)
。我也遇到了几乎相同的问题,我用如下完整路径调用它,解决了这个问题:
@views.html.admin("Admin Interface") {
}
试着像这样称呼它:
@views.html.main("MyApp") {}
好的,我找到了有效的解决方案。正确编译的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”))
}
谢谢你的回答。我认为这两种解决方案都可行。我认为这是IntelliJ中的一些东西,因为即使我在模板中有@main(“MyApp”)
,并且它可以工作,IDE显示消息无法解析符号main