2

Play2.0フレームワークを使い始めたばかりで、home/indexテンプレートでメインテンプレートを使用しようとしています。私が抱えている問題は、共有フォルダにあるときに「メイン」が見つからないことです。それを取り出してビュールートに入れると、正常に動作します。

だから私はどうやって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

You can use:

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

For security and performance reasons Play compiles templates to Scala functions and stores it in managed folder /target/scala-2.9.1/src_managed/main/views, so you can preview it to find correct path.

rules are easy for view files saved with pattern:

  • /app/views/viewName.scala.ext (where ext can be html, xml or txt) Play will compile views to: view.ext.viewName
  • and for /app/views/SomeSub/OtherSub/viewName.scala.ext it will be: view.ext.SomeSub.OtherSub.viewName

so:

/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...

There is some case with /app/views/tags package which is auto imported to the views, so you can use /app/views/tags/myTag.scala.html just with: @tags.myTag(args) syntax in any view.

于 2013-01-31T11:51:42.933 に答える
1

ビューのサブフォルダーに入ると、「html」と呼ばれる「疑似パッケージ」のようなものがあります。それがどのように機能するかは完全にはわかりませんが、これを試してください:

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