2012-04-25 227 views
13

升级到rails 3.2(从3.0.10)后,回形针(3.0.2)出现问题。升级到rails 3.2后回形针更改图像路径3.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" 

在此先感谢。

+1

是新的URI输入错误的“SMaL公司”段? – Christian 2012-04-25 23:40:21

+0

您是否升级了回形针或者只是Rails? – 2012-04-25 23:41:13

+0

您可以发布处理附件的回形针选项的相关模型部分吗? – 2012-04-26 00:09:58

回答

1

假设原始路径和当前路径之间的“小”与“小”差异是一个错字,另一个明显的变化是在“/ photos /”之后添加了两个数字段。

".../photos/000/000/094/smal/AudiLogo.jpg?1335392139" 

我怀疑这是来自用于路径的id_partition。你在其他地方设置了不同的默认路径插值吗?

看回形针的代码,我看到id_partition method这将是负责这个,但仍然没有发现任何文件指向默认行为的变化的方向。我没有遵循gem中的代码来确定它是一个错误还是无证的更改。

+0

感谢的人,它就像是对我的无证更改。 – jgiunta 2012-04-26 22:02:14

3

我刚做了一个类似的升级,并在我的路由问题是这样的:

has_attached_file :image, 
    :url => "/images/photos/:id/:basename_:style.:extension", 
    :path => ":rails_root/public/images/photos/:id/:basename_:style.:extension", 
+0

作为@heavysixersays,像这样设置:path选项将强制Paperclip像过去那样工作。我会尝试检查错误的原因,但 – Christian 2012-04-26 16:15:27

+0

谢谢!这是一个强制路径的选项,我会工作,但可能存在一种方法来使自动迁移我的意思。 – jgiunta 2012-04-26 22:08:12

+0

@jgiunta我不认为有一种方法可以自动迁移。你可以阅读[这个其他问题](http://stackoverflow.com/questions/10251309/paperclip-s3-migrating-existing-files-from-one-path-format-to-another/10337918#10337918)关于那 – Christian 2012-04-27 00:43:34

14

我有同样的问题。您可以通过创建一个文件中像配置/初始化/ 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

是否有任何脚本或耙任务将文件从旧位置移动到新位置? – 2013-06-28 04:35:33