Play 2 プロジェクトの一部としてサブプロジェクトを使用する場合、メイン プロジェクトとサブ プロジェクトにそれぞれ同じ名前のテンプレートがあり、たとえばnavtop.scala.html
、サブプロジェクト内の別のテンプレートへのインポートを呼び出すと、アプリがそのテンプレートを選択するようです。メインプロジェクトから。
インポート用に「ローカル」テンプレートを指定することはできますか?
Play 2 プロジェクトの一部としてサブプロジェクトを使用する場合、メイン プロジェクトとサブ プロジェクトにそれぞれ同じ名前のテンプレートがあり、たとえばnavtop.scala.html
、サブプロジェクト内の別のテンプレートへのインポートを呼び出すと、アプリがそのテンプレートを選択するようです。メインプロジェクトから。
インポート用に「ローカル」テンプレートを指定することはできますか?
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());
ください。