我的.js文件被压缩并且变量被破坏,但函数名称没有被修改(在Heroku上运行最新的Rails 3.2.8和最新的uglify 1.3.0 gem)。
根据https://github.com/lautis/uglifier#usage,“mangle”选项默认为true。以下是我的配置。
来自production.rb:
config.assets.compress = true
config.assets.js_compressor = :uglifier
我也试过
config.assets.compress = true
config.assets.js_compressor = Uglifier.new(:mangle => true, :toplevel => true, :copyright => true)
但没有明显的区别。
正如一位评论者建议的那样,我确实尝试更改我的.js文件的内容,但没有任何区别。
在Heroku上输出压缩的预编译.js文件的示例:
show_slideout_notification=function(){jQuery(".slideout_notification").slideDown();var e=$(".slideout_notification .countdown
似乎变量名称被破坏,但函数名称不是。
为什么功能名称没有被破坏的任何想法?或者这是不想要的行为,因为从我的Rails / js代码(即javascript onclick事件)调用函数是很困难的。或者,如果函数名称被破坏,那些onclick调用是否也会重命名为受损名称?
谢谢: - )
答案 0 :(得分:0)
您是否尝试修改过该文件?根据{{3}},资产文件的生成基于文件修改时间。也许你的设置甚至没有被使用。
答案 1 :(得分:0)
不应该是这样吗?
config.assets.js_compressor = Uglifier.new(:mangle => { :toplevel => true }, :output => { :comments => :copyright })