Rails Paperclip 在本地上传没有问题,在服务器上出现错误

autumnwolf · March 26, 2014 · Last by autumnwolf replied at March 27, 2014 · 2181 hits

如题,

ActionController::RoutingError (No route matches [GET] "/photos/small/missing.png"):
  actionpack (4.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.0.2) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.0.2) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.0.2) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.0.2) lib/active_support/tagged_logging.rb:67:in `block in tagged'
  activesupport (4.0.2) lib/active_support/tagged_logging.rb:25:in `tagged'
  activesupport (4.0.2) lib/active_support/tagged_logging.rb:67:in `tagged'
  railties (4.0.2) lib/rails/rack/logger.rb:20:in `call'
  actionpack (4.0.2) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.2) lib/rack/runtime.rb:17:in `call'
  activesupport (4.0.2) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
  rack (1.5.2) lib/rack/sendfile.rb:112:in `call'

Picture.rb

class Picture < ActiveRecord::Base
  belongs_to :product

  has_attached_file :photo, :styles => { :small => "200x200>", :large => "400x400" },    
  :url => "/assets/products/:id/:style/:basename.:extension",    
  :path => ":rails_root/public/assets/products/:id/:style/:basename.:extension"

  validates_attachment_presence :photo    
  validates_attachment_size :photo, :less_than => 5.megabytes    
  validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png'] 
end

这个错误是找不到 missing.png,但是我没有设定 default_url,应该是没有上传文件的时候有调用这个文件吧?什么情况下出现的这个错误呢?谢谢。

Assets Pipeline 引起的,具体是发布的时候,small.png 变成其他文件名了

这个你可以查查 Paperclip Assets Pipeline 的问题

Paperclip 在 Github 的 Issues 里面估计就有解决方案

#1 楼 @huacnlee 谢谢 刚找到了就是有个缩略图显示,没有上传图片然后添加的时候就会加载一个 missing.png 添加上就好了

You need to Sign in before reply, if you don't have an account, please Sign up first.