Rails忽略生产中的asset_host但不在开发中

时间:2015-08-10 11:22:49

标签: ruby-on-rails-4 nginx asset-pipeline unicorn

我已设置config/environments/production.rb

config.serve_static_files = false
config.assets.compile = false
config.action_controller.asset_host = ENV['CDN_URL']

我运行RAILS_ENV=production bundle exec rake assets:precompile并将资产文件夹上传到我的资产服务器。

在我的机器上,我可以启动一个生产服务器,它工作正常。但是当我上传到生产服务器(nginx + unicorn)时,rails应用程序继续使用本地路径而不是asset_host

<script src="/assets/application-e5b02395783a59feaf5a100d0e23806c3e2bd45296770ebac0fc756f8e1dfd53.js" data-turbolinks-track="true"></script>

如何从asset_host获取资源?

编辑更好地解释我的问题

在远程主机上:

$ RAILS_ENV=production bundle exec rails console
Loading production environment (Rails 4.2.3)
irb(main):001:0> puts helper.javascript_include_tag 'application.js'
<script src="/assets/application-e5b02395783a59feaf5a100d0e23806c3e2bd45296770ebac0fc756f8e1dfd53.js"></script>
=> nil
irb(main):002:0>

在本地计算机上:

$ RAILS_ENV=production bundle exec rails console
Loading production environment (Rails 4.2.3)
2.2.2 :001 > puts helper.javascript_include_tag 'application.js'
<script src="http://cdn.site.com/assets/application-e5b02395783a59feaf5a100d0e23806c3e2bd45296770ebac0fc756f8e1dfd53.js"></script>
 => nil
2.2.2 :002 >

1 个答案:

答案 0 :(得分:0)

发现问题。

我使用figaro处理环境变量。有人更改了application.yml的权限,而EVN['CDN_URL']在生产服务器上返回了nil。