我正在尝试从assets/stylesheets/
目录编译* .less资源。我在此目录中包含一个文件,即masterpage.less
。
我已经添加了sbt插件
我addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6")
文件中的plugins.sbt
。
必须在app / assets目录中定义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)
这就是我试图在我的html文件中链接css页面的方式:
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/masterpage.css")"/>
最后,这是我在控制台中收到的错误:
GET http://localhost:9000/assets/masterpage.css
答案 0 :(得分:6)
默认情况下,sbt-less仅查找名为main.less
的文件。如果要使用其他文件,则必须在build.sbt中指明它。
includeFilter in (Assets, LessKeys.less) := "masterpage.less"
如果要包含所有LESS文件,请使用通配符:
includeFilter in (Assets, LessKeys.less) := "*.less"
这不是默认设置,因为您通常会从main.less
导入LESS文件。