4

我的 .js 文件被压缩并且变量被修改,但函数名称在 Heroku 上没有被修改(运行最新的 Rails 3.2.8 和最新的 uglify 1.3.0 gem)。

根据https://github.com/lautis/uglifier#usage,“mangle ”选项默认为 true。下面是我的配置。

来自生产.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 调用也会被重命名为损坏的名称?

谢谢 :-)

4

2 回答 2

0

您是否尝试过修改文件?据此,资产文件的生成是基于文件修改时间的。也许您的设置甚至没有被使用。

于 2012-10-02T18:28:57.883 回答
0

不应该是这样吗?

config.assets.js_compressor = Uglifier.new(:mangle => { :toplevel => true }, :output => { :comments => :copyright })
于 2013-12-16T03:19:15.237 回答