我正在使用这个插件的play框架。我有public
文件夹的以下结构;
├───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。我怎样才能做到这一点?
答案 0 :(得分:1)
根据Play文档:
Play中的可编辑资产必须在
app/assets
目录中定义。
无需自述的自述文件:
为相对导入和网址中的网址重写设置rootpath。
似乎没有办法做到这一点,因为Play需要一个可以预期可编译资产而不是Scala / Java代码的地方。 rootpath
键似乎只是用于在LESS文件中重写导入/ URL。
您需要的是:
├───app
│ ├───assets
│ │ ├───css
│ │ ├───img
│ │ └───js
│ │ ├───apis
│ │ ├───config
│ │ ├───controllers
│ │ ├───directives
│ │ ├───filters
│ │ ├───locale
│ │ └───services
│ └───views
└───test
答案 1 :(得分:0)
SbtWeb插件中定义的资产的默认路径是:app/assets
:
sourceDirectory in Assets := (sourceDirectory in Compile).value / "assets"
因此可以轻松覆盖:
sourceDirectory in Assets := (sourceDirectory in Compile).value / "path" / "to" / "assets"