2015-02-05 1 views
4

Я пытаюсь скомпилировать * .less ресурсы из моего каталога assets/stylesheets/. У меня есть один файл, содержащийся в этом каталоге, который равен masterpage.less.Less Resources not Compiling Play 2.3.7

Я добавил плагин sbt для менее addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6") в моем plugins.sbt файле.

The Play documentation говорит:

компилируется активы в Play должны быть определены в директории приложения/активов. Они обрабатываются процессом сборки, а источники LESS скомпилированы в стандартные файлы CSS. Сгенерированные файлы CSS распределяются как стандартных ресурсов в ту же общедоступную/папку, что и неуправляемые активы , что означает, что нет никакой разницы в том, как вы их используете после компиляции.

Что я делаю, так что я запутался, почему мои ресурсы не компилируются в public/

Вот маршруты я есть:

GET /assets/*file controllers.Assets.at(path="/public", file) 
GET /vassets/*file controllers.Assets.versioned(path="/public", file: Asset) 
GET /webjars/*file controllers.WebJarAssets.at(file) 

Это, как я пытаюсь связать страницу CSS в моем HTML файле:

<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/masterpage.css")"/> 

и, наконец, здесь ошибка я получаю в моей консоли:

GET http://localhost:9000/assets/masterpage.css 

ответ

6

По умолчанию выглядит SBT-менее только файл с именем main.less. Если вы хотите использовать другой файл, вы должны указать его в файле build.sbt.

includeFilter in (Assets, LessKeys.less) := "masterpage.less" 

Если вы хотите включить все МЕНЬШЕ файлы, использовать подстановочные:

includeFilter in (Assets, LessKeys.less) := "*.less" 

Это не по умолчанию, потому что вы обычно меньше импортировать файлы из main.less.

+1

Так что это сработало, но прохождение текста в OP, кажется, вводит в заблуждение. Я интерпретировал это как означающий, что любой файл '* .less' в каталоге' app/assets' будет скомпилирован. Если у меня есть 100 файлов 'less', я бы включил их все в этот фильтр? –

+1

Обычно вы импортируете их из вашего main.less, поэтому у вас есть один выходной файл .js. Или используйте подстановочные знаки. –