【问题标题】:Rails ignoring asset_host in production but not in developmentRails在生产中忽略asset_host,但在开发中没有
【发布时间】:2015-08-10 11:22:49
【问题描述】:

我已经设置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 >

【问题讨论】:

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


    【解决方案1】:

    找到问题了。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多