2

我刚开始使用 Play2.0 框架,我正在尝试在我的模板中使用主home/index模板。我遇到的问题是它在共享文件夹中时找不到“main”,如果我把它拿出来放在 Views 根目录中,它就可以正常工作。

所以我想知道如何引用main.scala.htmlfrom index.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.
4

2 回答 2

7

您可以使用:

@Shared.main(title = "Home",head, content)

出于安全和性能原因,Play 将模板编译为 Scala 函数并将其存储在托管文件夹/target/scala-2.9.1/src_managed/main/views中,因此您可以预览它以找到正确的路径。

规则很容易查看使用模式保存的文件:

  • /app/views/viewName.scala.extext可以是htmlxmltxt) 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

ETC...

在某些情况下,/app/views/tags包会自动导入到视图中,因此您可以在任何视图中使用/app/views/tags/myTag.scala.htmlwith:@tags.myTag(args)语法。

于 2013-01-31T11:51:42.933 回答
1

一旦你进入视图的子文件夹,就会有这样的“伪包”,称为“html”。我不完全确定它是如何工作的,但试试这个:

@views.html.Shared.main
于 2013-01-29T19:08:27.800 回答