Railsアプリを実行するためのUATと本番環境があります。UAT は、本番サーバーの RAILLS_ENV=uat および RAILS_ENV=production でアプリを実行します。展開のために、ローカル マシンでアセットをコンパイルし、すべてをこれらのサーバーにコピーして、UAT サーバーと運用サーバーでアセットをコンパイルする必要がないようにします。
ここで、config.assets.debug = true を設定した場合、アセットのコンパイル時に指定した env と同じ RAILS_ENV で Rails アプリを実行する必要があることがわかりました。そうしないと、次のエラーが発生します。
ExecJS::RuntimeUnavailable in Welcome#index
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
(in /opt/myapp/app/assets/javascripts/ping.js.coffee)
たとえば、以下のようにアセットをコンパイルすると:
rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace
config.assets.debug = true を使用してコンパイル アセットを UAT サーバー (RAILS_ENV は uat) にコピーすると、エラーが発生して機能しません。
config.assets.debug = false を設定するか、アプリを RAILS_ENV=production で実行すると、正常に動作します。しかし、 config.assets.debug = true を設定すると、異なる RAILS_ENV が問題になる理由がわかりません。
それらがどのように関連しているかを誰か説明できますか?