较少使用Play 2.3.1导致main.css为零长度

时间:2014-10-28 01:50:58

标签: playframework-2.0 less sbt

我在Play 2.3.1中使用了LESS编译器。我在我的plugins.sbt文件中安装了sbt-less插件(v1.0.4),并在build.sbt中启用了它:

lazy val root = (project in file("."))
  .enablePlugins(PlayJava)
  .enablePlugins(SbtWeb)

调用LESS编译器并在target \ web \ public \ main \ stylesheets目录中构建main.css。文件的内容是正确的。

在我的index.scala.html文件中,我有:

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

然而,当我将浏览器指向应用程序时,找到了main.css,但大小为零。 http状态代码为304,未修改。

如果我使用activator打包我的应用程序进行部署,则生成的.jar文件中的main.css也为零。我无法理解激活器从哪里获得零长度main.css以及为什么它没有得到LESS生成的那个。任何帮助表示赞赏。

更新

有趣的是,如果我们随意将@routes.Assets.at("stylesheets/main.css")改为&#34; test2.css&#34;,Play会生成一个名为test2.css的空文件并将其返回。

因此,似乎LESS正在生成的main.css与@routes.Assets返回的main.css之间没有关系。这表明LESS没有将文件放在@routes.Assets期望的位置。

解决吗

我们搜索了应用程序的模块,发现了一些零大小的样式表/ main.css文件。我们删除了那些并开始工作的东西。我猜他们混淆了背景中发生的任何魔法。

结论

这是一个多模块项目。我正在使用main但已经设置了模块目录,可能是从某个地方复制过来的。其中一些模块具有零大小的public / stylesheets / main.css文件。 &#34;真实&#34;由LESS生成的main.css首先被复制到输出,然后被其中一个空的main.css文件覆盖。一旦它们被移除,我们就得到了预期的结果。

0 个答案:

没有答案