我们有UAT和生产环境来运行rails app。 UAT使用RAILLS_ENV = uat和RAILS_ENV =生产服务器的生产来运行应用程序。对于部署,我们在本地计算机上编译资产并将所有内容复制到这些服务器,这样我们就不必在UAT和生产服务器上编译资产。
现在,我发现如果设置config.assets.debug = true,我必须使用与我在资产编译时指定的env相同的RAILS_ENV运行rails app。 否则,我收到以下错误。
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运行应用程序,它可以正常工作。但是,我不明白为什么不同的RAILS_ENV出现问题 设置config.assets.debug = true时。
有人能解释一下他们的关系吗?