我的PlayFramework(2.3)应用程序在开发模式(sbt run)中运行时没有问题。但是,当我尝试创建分发(sbt dist)或明星制作(sbt start)时,将在缩小文件夹(javascripts-min)中搜索javascript文件,该文件夹不可用。另一方面,如果使用sbt-uglify,它会创建javascripts的缩小版本,但是在同一目录(main.min.js和main.js)中。
GET http://localhost:9000/assets/javascripts-min/main.js 404 (Not Found)
GET http://localhost:9000/assets/javascripts/main.js (Ok)
可能我需要配置一些东西以使缩小发生。我应该包含一些sbt插件还是更改应用程序配置?
答案 0 :(得分:6)
我遇到了同样的问题,对我来说问题是在我加载JavaScript文件的.scala.html
文件中,我使用@helper.requireJs
这样:
@helper.requireJs(core = routes.Assets.at("javascripts/require.js").url,
module = routes.Assets.at("javascripts/main.js").url)
在Play Framework 2.3中,@helper.requireJs
已被破坏,或者已被弃用,但它似乎无法正常工作。用常规<script>
元素替换它解决了我的问题:
<script src="@routes.Assets.at("javascripts/require.js").url"
data-main="@routes.Assets.at("javascripts/main.js").url"></script>
答案 1 :(得分:0)
您可以使用productionFolderPrefix参数指定文件夹后缀,使用&#34;&#34;如果不想要一个。 (虽然参数名称有些误导)
例如:
@helper.requireJs(core = routes.Assets.at("javascripts/require.js").url,
module = routes.Assets.at("javascripts/main.js").url,
productionFolderPrefix = "")
请参阅requireJs#apply() doc或source code以供参考