Playframework: Путь к пользовательскому шаблону

Мне было интересно, можно ли переопределить/добавить пути к шаблону для Playframework? Например, шаблоны по умолчанию просматриваются в папке представлений и компилируются автоматически. Эти шаблоны доступны напрямую с помощью URL-адреса без какой-либо дополнительной настройки.

---app
   |-controllers
   |-models
   |-templates  //How do I compile templates under this folder?
   |-views

Я хотел бы знать, можно ли добавить собственный путь в дополнение к папке views, которая также скомпилирована в процессе сборки. В качестве альтернативы можно ли заблокировать определенные шаблоны, чтобы они были недоступны по прямому URL-адресу?

Заранее спасибо!


person MojoJojo    schedule 14.07.2016    source источник
comment
Можете ли вы привести пример своей точки зрения о том, что шаблоны недоступны по прямому URL-адресу?   -  person Mikesname    schedule 16.07.2016


Ответы (1)


В каталоге app Play должен автоматически компилировать все, что выглядит как шаблон Twirl, то есть имеет зарегистрированное расширение, такое как *.scala.html, независимо от того, в каком каталоге оно находится. Каталог views — это просто соглашение, а компиляция шаблонов в каталоге app/templates уже должно произойти.

Если вы откроете приглашение SBT, вы можете проверить это, выполнив команду:

show twirlCompileTemplates::sourceDirectories

Что должно дать вам что-то вроде:

[info] my-project/compile:twirlCompileTemplates::sourceDirectories
[info]  List(/home/me/my-project/app)

Чтобы добавить каталог шаблонов вне папки app, вы должны иметь возможность добавить что-то вроде следующего в свой build.sbt (например, каталог extra_templates):

import play.twirl.sbt.Import.TwirlKeys._

sourceDirectories in (Compile, compileTemplates) += file("extra_templates")
person Mikesname    schedule 16.07.2016