2014-11-17 4 views
1

Я использую платформу воспроизведения с этим плагином. У меня есть следующая структура для папки public;Конфигурирование пути компиляции плагина sbt-less

├───app 
│ ├───css 
│ ├───img 
│ ├───js 
│ │ ├───apis 
│ │ ├───config 
│ │ ├───controllers 
│ │ ├───directives 
│ │ ├───filters 
│ │ ├───locale 
│ │ └───services 
│ └───views 
└───test 

В build.sbt у меня есть следующее:

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

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

LessKeys.rootpath in Assets := "public/app/css" 

В моей main.scala.html, у меня есть следующие ссылки тег;

<link rel="stylesheet" href='@routes.Assets.at("app/css/main.css")'> 

И, наконец, мой routes имеет следующий;

GET  /assets/*file    controllers.Assets.at(path="/public", file) 

Однако, конфигурация в build.sbt не работает. Я хочу скомпилировать public/app/css/main.less. Как я могу это достичь?

ответ

1

Согласно документации Play:

компилируется активы в игре должны быть определены в каталоге app/assets.

И SBT-менее ридй:

Набор ROOTPATH ​​для перезаписи URL в относительном импорте и ссылках.

Похоже, что нет никакого способа сделать это, поскольку Play необходимо место, где он может ожидать компилируемые активы, а не код Scala/Java. Ключ rootpath, по-видимому, предназначен для повторной записи импорта/URL-адресов в файлы LESS.

Что вам нужно:

├───app 
│ ├───assets 
│ │ ├───css 
│ │ ├───img 
│ │ └───js 
│ │  ├───apis 
│ │  ├───config 
│ │  ├───controllers 
│ │  ├───directives 
│ │  ├───filters 
│ │  ├───locale 
│ │  └───services 
│ └───views 
└───test 
0

По умолчанию путь к активам, определенным в плагине SbtWeb является: app/assets:

sourceDirectory in Assets := (sourceDirectory in Compile).value/"assets"

поэтому он может быть легко переопределены:

sourceDirectory in Assets := (sourceDirectory in Compile).value/"path"/"to"/"assets"

Смежные вопросы