玩框架2.3 dist任务 - javascripts-min不可用

时间:2014-08-19 09:01:39

标签: playframework playframework-2.3

我的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插件还是更改应用程序配置?

2 个答案:

答案 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() docsource code以供参考