升级到rails 3.2(从3.0.10开始)后,回形针(3.0.2)出现问题。
最初一张图片的路径是:
"http://localhost:3000/system/photos/94/small/AudiLogo.jpg?1335392139"
升级后这种图像再也不显示了!但是如果我上传了一张新图片,这将在页面上显示正常,但使用的新路径是:
"localhost:3000/system/products/photos/000/000/094/smal/AudiLogo.jpg?1335392139"
升级中发生了什么?有什么解决方案可以将旧路径转换为新路径吗?
我尝试使用“rake paperclip:refresh:missing_styles”,但是没有用。
回形针配置部分就是这样。
has_attached_file :photo,
:processors => lambda { |a|
if a.external?
[:thumbnail]
else
[:thumbnail,:watermark]
end
},
:styles => {
:slider => { :geometry => "350x312#", :format => :jpg, :watermark_path => "#{Rails.root}/public/images/watermark.png", :position => "NorthEast" },
:small => "100x50>",
:medium => "200>x200",
:thumb => "100x100>",
:big => { :geometry => "640x480>", :format => :jpg, :watermark_path => "#{Rails.root}/public/images/watermark.png" }
},
:default_url => "/images/noimage.png"
提前致谢。
答案 0 :(得分:14)
我遇到了同样的问题。你可以通过创建一个像 config / initializers / paperclip.rb 这样的文件来解决这个问题,然后把它放到
Paperclip::Attachment.default_options.merge!(
:path => ":rails_root/public/system/:attachment/:id/:style/:basename.:extension",
:url => "/system/:attachment/:id/:style/:basename.:extension"
)
答案 1 :(得分:3)
我刚刚进行了类似的升级,并以这种方式解决了我的问题:
has_attached_file :image,
:url => "/images/photos/:id/:basename_:style.:extension",
:path => ":rails_root/public/images/photos/:id/:basename_:style.:extension",
答案 2 :(得分:1)
假设原始路径和当前路径之间的“小”与“小”差异是拼写错误,另一个明显的变化是在“/ photos /".
之后添加了两个数字段。".../photos/000/000/094/smal/AudiLogo.jpg?1335392139"
我怀疑这是来自用于路径的id_partition。您是否在其他地方设置了不同的默认路径插值?
查看Paperclip的代码,我看到id_partition method会对此负责,但仍未找到任何指向默认行为更改方向的文档。我没有按照gem中的代码来确定它是一个bug还是未记录的更改。