У меня есть приложение rails4, и я пытаюсь добавить загрузки CDN в S3. По какой-то причине это не работает.рельсы конфигурирование несущей волны с S3 и облачным
Когда я устанавливаю облачный режим в конфигурации по какой-либо причине, он действует только на некоторые из изображений (НЕ ВСЕ), принадлежащих одному и тому же загрузчику, и сверху, что эти изображения сломаны. Изображения, отображаемые на S3, работают должным образом, за исключением того, что они также должны обслуживаться с облачного интерфейса.
Что я пропустил?
изображение, которое отображается (сломалось) через CloudFront:
<%= image_tag current_user.avatar.url(:small_thumb), class: 'navbar-avatar', alt: "#{current_user.first_name}'s_avatar", title: "#{current_user.first_name}'s avatar" %>
https://xyz.cloudfront.net/images/xyz.cloudfront.net/uploads/profile/avatar/3/small_thumb_3f4ff02.jpg
Изображение из того же пользователя, что по какой-то причине выводится из S3 не CloudFront (дисплей не сломано)
<%= image_tag post.user.avatar.url(:base_thumb), class: 'post-avatar' %>
https://eaxmple.s3.amazonaws.com/uploads/profile/avatar/10/base_thumb_john_smith.png
конфигурации :
CarrierWave.configure do |config|
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'],
aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
}
config.fog_directory = ENV['S3_BUCKET_NAME']
config.fog_attributes = { 'Cache-Control' => "max-age=#{365.day.to_i}" }
config.asset_host = ENV['CLOUDFRONT_URL']
end
avatar_uploader.rb
if Rails.env.production?
storage :fog
else
storage :file
end
Gemfile
gem 'carrierwave', '~> 0.10.0'
gem 'fog', '~> 1.34.0'
gem 'mini_magick', '~> 4.3.3'
UPDATE
загрузчиком хранения по умолчанию:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
Как я могу изменить это:
https://xyz.cloudfront.net/images/xyz.cloudfront.net/uploads/profile/avatar/3/small_thumb_3f4ff02.jpg
это:
https://xyz.cloudfront.net/uploads/profile/avatar/3/small_thumb_3f4ff02.jpg
Что значение 'ENV [ 'CLOUDFRONT_URL'] '? – Codebeef