2016-02-11 2 views
0

Я установил Cloudfront с Heroku для Rails и в начале работал отлично. В последние дни я заметил, что активы больше не обслуживаются с cloudfront.net.Rails Cloudfront активы не обслуживаются

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 

я могу охватить все свои активы под CloudFront адреса и в хроме я могу видеть, что приложение-5deb6995ce9b984d469b27c58cc92a095d19cd13e0acd622ffe426c41826e055.js получает подается с CloudFront сервера. Однако все статические изображения на странице, например. /assets/shop/banners/2.jpg нет.

Возможно, это связано с предварительной компиляцией, поскольку она не ищет версию файла отпечатка пальца или?

В моем геме-файл У меня есть следующий включено:

group :production, :staging do 
     gem 'rails_12factor' 
     gem 'pg' 
end 
+1

Вы используете помощники 'image_tag' или' image_url', чтобы показывать свои изображения? – tegon

+0

Мне нужно сделать это, я думаю? – Karsten

+0

Да, если вы используете помощники изображения, рельсы будут префикс ваших изображений со значением, определенным в 'config.action_controller.asset_host'. Дополнительную информацию см. На странице https://devcenter.heroku.com/articles/using-amazon-cloudfront-cdn#adding-cloudfront-to-rails. – tegon

ответ

1

Как tegon poined из, IMAGE_TAG является или IMAGE_URL необходима для обслуживания активов от CloudFront. У меня была обычная ссылка «img src» в моем коде, которая не будет распознана.

Изменено img src to image_tag или image_url, и оно работает. Благодаря!

Смежные вопросы