【发布时间】:2016-05-22 02:11:17
【问题描述】:
我使用 Heroku for Rails 设置 Cloudfront,一开始它运行良好。我注意到在最后几天不再从 cloudfront.net 提供资产。
Production.rb
Rails.application.configure do
config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.action_controller.asset_host = 'http://d2t6o5tnu5etuf.cloudfront.net'
config.serve_static_files = true
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :sass
config.assets.compile = true
config.assets.digest = true
config.assets.version = '1.0'
config.log_level = :info
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.log_formatter = ::Logger::Formatter.new
config.active_record.dump_schema_after_migration = false
end
我可以访问云端地址下的所有资产,在 chrome 中我可以看到 application-5deb6995ce9b984d469b27c58cc92a095d19cd13e0acd622ffe426c41826e055.js 从云端服务器获得服务。但是页面上的所有静态图像,例如/assets/shop/banners/2.jpg 没有。
似乎和预编译有关,因为它不寻找文件的指纹版本,或者?
在我的 gem 文件中,我包含以下内容:
group :production, :staging do
gem 'rails_12factor'
gem 'pg'
end
【问题讨论】:
-
您是在使用助手
image_tag或image_url来显示您的图像吗? -
我猜我需要这样做?
-
是的,如果你使用图像助手,rails 会在你的图像前面加上
config.action_controller.asset_host中定义的值。请参阅devcenter.heroku.com/articles/… 了解更多信息。
标签: ruby-on-rails heroku amazon-cloudfront