2014-11-17 74 views
1

我正在使用這個插件的play framework。我對public文件夾有以下結構;配置sbt-less插件的編譯路徑

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

build.sbt,我有以下;我有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

根據播放文件:

在播放可編譯資產必須在app/assets目錄進行定義。

而且SBT-少自述:

設置ROOTPATH的網址相對進口和URL重寫。

似乎沒有辦法做到這一點,因爲Play需要一個可以期待可編譯資產而不是Scala/Java代碼的地方。 rootpath鍵似乎只是用於在LESS文件中重寫導入/ URL。

你需要的是:

├───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"