Javascript Play asset pipeline未在生产中生成js文件的缩小版本?
有了Play 2.4 web应用程序,我正试图使用从我的Javascript Play asset pipeline未在生产中生成js文件的缩小版本?,javascript,playframework,sbt,minify,uglifyjs,Javascript,Playframework,Sbt,Minify,Uglifyjs,有了Play 2.4 web应用程序,我正试图使用从我的.js文件创建.min.js 路线声明: GET /assets/*file controllers.Assets.at(path="/public", file) pipelineStages := Seq(uglify) override def at(path: String, fileName: String, cacheAggressively: Boolean): Action[AnyContent] = { s
.js
文件创建.min.js
路线声明:
GET /assets/*file controllers.Assets.at(path="/public", file)
pipelineStages := Seq(uglify)
override def at(path: String, fileName: String, cacheAggressively: Boolean): Action[AnyContent] = {
super.at(path, redirectToMin(path, fileName), cacheAggressively)
}
private def redirectToMin(path: String, fileName: String): String = {
val resourceName = some logic to crated the minfile...
Play.maybeApplication.flatMap(_.resource(resourceName).map(_ => minFile)).getOrElse(fileName)
}
管道阶段:
GET /assets/*file controllers.Assets.at(path="/public", file)
pipelineStages := Seq(uglify)
override def at(path: String, fileName: String, cacheAggressively: Boolean): Action[AnyContent] = {
super.at(path, redirectToMin(path, fileName), cacheAggressively)
}
private def redirectToMin(path: String, fileName: String): String = {
val resourceName = some logic to crated the minfile...
Play.maybeApplication.flatMap(_.resource(resourceName).map(_ => minFile)).getOrElse(fileName)
}
覆盖了资产。在
:
GET /assets/*file controllers.Assets.at(path="/public", file)
pipelineStages := Seq(uglify)
override def at(path: String, fileName: String, cacheAggressively: Boolean): Action[AnyContent] = {
super.at(path, redirectToMin(path, fileName), cacheAggressively)
}
private def redirectToMin(path: String, fileName: String): String = {
val resourceName = some logic to crated the minfile...
Play.maybeApplication.flatMap(_.resource(resourceName).map(_ => minFile)).getOrElse(fileName)
}
为了测试一切都在开发模式下工作,正如本文所建议的,我在Assets:=Seq(uglify)中使用pipelineStages,并生成缩小的javascript文件。但是,当我使用start
启动应用程序以指示我们正在生产时,不会生成缩小版本。任何关于我下一步的想法都将不胜感激
PS1:如果有什么不同,我正在使用sbt-uglify-1.0.3
PS2:我正在使用样式表,这些样式表已正确缩小。为什么您需要自己的资产控制器?开箱即用资产控制器具有访问缩小文件所需的所有逻辑。另外,您确定没有创建这些文件吗.min.js
文件在target/web/rjs
上创建,之后打包为webjar。感谢您编辑本文。是的,我必须重新访问我的控制器,它是Play2.3之前的遗留文件。。我没有用RJ,只是丑陋而已。当我在开发模式下使用资产中的pipelineStages:=Seq(uglify)
运行它时,会在“target\web\public\main\javascripts”中创建.min.js。因此,当我使用“start”运行服务器时,我认为它应该在相同的位置生成.min.js。不是这样吗?