1

Play 2 プロジェクトの一部としてサブプロジェクトを使用する場合、メイン プロジェクトとサブ プロジェクトにそれぞれ同じ名前のテンプレートがあり、たとえばnavtop.scala.html、サブプロジェクト内の別のテンプレートへのインポートを呼び出すと、アプリがそのテンプレートを選択するようです。メインプロジェクトから。

インポート用に「ローカル」テンプレートを指定することはできますか?

4

1 に答える 1

4

Play は Scala テンプレート ファイルを実際のクラスにコンパイルします。したがって、app/views/navtop.scala.html は views.html.navtop にコンパイルされます。同じ完全修飾名を持つ 2 つのクラスを持ち、クラス ローダーをいじるのは悪い習慣です。クラス ファイルの衝突を防ぐには、パッケージを使用します。

すべてのビューをフォルダー app/views に入れることは、プレイの要件ではありません。たとえば、views.html.navtop とは異なる admin.views.html.navtop にコンパイルされる app/admin/views/navtop.scala.html を使用することもできます。

テンプレートにインポートするには:

@import admin.views.html.navtop

@navtop()

それでも衝突する場合は、フルネームを使用してreturn ok(admin.views.html.navtop.render());ください。

于 2013-10-18T20:01:58.813 に答える