2015-06-17 22 views
1

我已经使用dragonfly gem成功地在我的Rails应用中安装并上传了图像。如果我直接通过应用加载图片,加载图片效果很好。不过,如果我通过的Cloudfront加载图像,我得到一个错误页,上面写着“你需要给一个SHA参数”,因为SHA包含在URL已经是奇怪:通过Cloudfront提供蜻蜓图像时出现“您需要提供SHA参数”错误

enter image description here

对于上下文这里是我的蜻蜓设置:

# config/initializers/dragonfly.rb 

require 'dragonfly' 

# Configure 
Dragonfly.app.configure do 
    plugin :imagemagick 

    secret "randomsecret" 

    url_format "/media/:job/:name" 

    datastore :file, 
    root_path: Rails.root.join('public/system/dragonfly', Rails.env), 
    server_root: Rails.root.join('public') 
end 

# Logger 
Dragonfly.logger = Rails.logger 

# Mount as middleware 
Rails.application.middleware.use Dragonfly::Middleware 

# Add model functionality 
if defined?(ActiveRecord::Base) 
    ActiveRecord::Base.extend Dragonfly::Model 
    ActiveRecord::Base.extend Dragonfly::Model::Validations 
end 

我已经阅读CDN section in the documentation of dragonfly,但它并没有解决问题。它唯一的区别是,它包括url_host时调用image.url而不是它通常返回的相对路径。

回答

3

默认情况下,CloudFront不会将查询字符串转发到原始位置。您是否验证过您已启用query string转发?

+0

你太棒了。我不知道查询字符串默认情况下被禁用。谢谢你的协助! –

相关问题