在我的模特中,我有:
has_attached_file :image,
:storage => :s3,
:styles => { :original => ["300x250>", :png], :small => ["165x138>", :png], :mini => ["120x120>", :png] },
:path => 'images/vind/:style/:id/:basename.:extension',
:url => 'images/vind/:style/:id/:basename.png',
:bucket => 'konkurrencerher',
:s3_credentials => {
:access_key_id => 'x',
:secret_access_key => 'x'
}
问题在于,亚马逊s3主机名已添加到视图中的网址。
我有一个解决方案,但有点难看:
<%= image_tag(kon.photo.image.url(:small).gsub("http://s3.amazonaws.com/konkurrencerher", ""), :class => 'koni') %>
但是,如何在没有Amazon S3主机名的情况下在模型中定义图像网址?
答案 0 :(得分:2)
查看Paperclip::Storage::S3
,尤其是:s3_host_alias
。
您可以尝试使用以下附加选项配置has_attached_file
:url => ':s3_alias_url',
:s3_host_alias => "example.domain.net"
希望这有帮助。
答案 1 :(得分:0)
我的解决方案在初始化程序映射中创建了一个文件:
Paperclip.interpolates(:s3_path_url) { |attachment, style|
"#{(attachment.path).gsub("images/", "")}"
}
然后网址应为:
:url => ':s3_path_url'
这是一个更好的解决方案。