私の .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)
しかし、顕著な違いはありません。
あるコメント投稿者が示唆したように、1 つの .js ファイルの内容を変更しようとしましたが、違いはありませんでした。
Heroku での圧縮済みプリコンパイル済み .js ファイルの出力の例:
show_slideout_notification=function(){jQuery(".slideout_notification").slideDown();var e=$(".slideout_notification .countdown
変数名はマングルされているようですが、関数名はそうではありません。
関数名がマングルされない理由はありますか? または、Rails/js コード (つまり、javascript onclick イベント) から関数を呼び出すのが難しいため、これは望ましくない動作ですか。または、関数名がマングルされている場合、これらの onclick 呼び出しもマングルされた名前に変更されますか?
ありがとう :-)