即使我设置了uglifier,Rails也不会缩小JS

时间:2016-03-01 20:51:42

标签: javascript ruby-on-rails ruby heroku asset-pipeline

我为一个项目配置了JS和CSS压缩器,但我没有注意到Javascript文件的真正缩小。

production.rb我有:

config.assets.css_compressor = :sass
config.assets.js_compressor = :uglifier

CSS似乎全部缩小(不仅捆绑在一起)。

我正在部署到Heroku,我注意到它预先编译了我的资产,它也可能有一些GZip压缩。

但不知何故JS文件仍然有大量的空格,变量都保留了默认名称,所以我猜它只捆绑了application.js中的所有文件。

我得错了什么或者是预期的输出?如果我想要真正缩小这些文件,我应该配置一些东西吗?

我想要的是类似于http://jscompress.com/中产生的内容或minified jQuery version上的内容。

谢谢!

1 个答案:

答案 0 :(得分:0)

我发现我正在修改一个不在资产管道上的Javascript,因此压缩/缩小不会触发。

当我修改了正确的文件(加载到application.js上时,缩小了正确的触发[0]。

所以,始终记得修改Javascript文件 [正在资源管道上加载] 所以你触发压缩器,否则Rails会使用缓存的javascript文件他们不会被压缩。

[0] 还要注意无效字符:由于.js文件的第一行中有注释,UglifyJS最终失败。但在我删除评论(<!-- (comment) ... ->)后,它正常工作,我可以看到application.js在分段时缩小了。有关它的更多信息https://stackoverflow.com/a/35751343/135767