我在我的网站上进行了一些图像优化。事情在开发机器上工作得很棒,但在生产模式下我遇到了错误,即:
ActionView::Template::Error (can't dup Symbol):
仅在aws的情况下才会发生这种情况,如果我将其移除,那么事情就会完美无缺:
我正在使用的代码并且工作正常:
has_attached_file :attachment, {
:styles => {
:medium=>"654x346>",
:small => "260x400>",
:thumb => "75x75#",
:facebook_meta_tag => "200x200#"
}, :include_updated_timestamp => false
}.merge(PAPERCLIP_STORAGE_OPTIONS)
但现在我对此进行了修改,并且它在开发环境中工作得很好,但却没有在生产环境中工作。
has_attached_file :attachment,
:styles => {
:medium => {
:geometry => "654x346>",
:quality => 60,
:format => 'JPG'
},
:small => {
:geometry => "260x400>",
:quality => 60,
:format => 'JPG'
},
:thumb => {
:geometry =>"75x75#",
:quality => 60,
:format => 'JPG'
},
:facebook_meta_tag => {
:geometry =>"200x200#",
:quality => 50,
:format => 'JPG'
}
}.merge(PAPERCLIP_STORAGE_OPTIONS)
其他相关设置:
PAPERCLIP_STORAGE_OPTIONS = {
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/amazons3.yml",
}
amazons3.yml
production:
access_key_id: XXXXxxxXXXXxxx
secret_access_key: XXXXxxxXXXXxxxXXXXxxxXXXXxxxXXXXxxxXXXXxxx
bucket: images.XXXXxxx.com
答案 0 :(得分:1)
以下是工作代码:
has_attached_file :attachment, {
:styles => {
:medium => ["654x346>", :jpg],
:small => ["260x400>", :jpg],
:thumb => ["75x75#", :jpg],
:facebook_meta_tag =>["200x200#", :jpg]
},
:convert_options => {
:medium => "-quality 60",
:small => "-quality 60",
:thumb => "-quality 60",
:facebook_meta_tag => "-quality 60"
}
}.merge(PAPERCLIP_STORAGE_OPTIONS)
答案 1 :(得分:-1)
ActionView::Template::Error
往往是视图内部引发的错误(Rails重新包装ActionView::Template::Error exceptions
内部视图内的错误。)
为了帮助您,我需要查看回溯和所涉及的视图。
这不是一个真正的答案,但如果这有助于你找到原因,你也可以接受它。