我使用carrierwave從我的rails應用程序上傳圖像,稍後將該圖像傳遞給resque以在後臺調整它們的大小。圖像上傳得當。當resque試圖調整其大小的問題,mini_magick說:「沒有這樣的文件或目錄」Imagemagick在Mac上沒有這樣的文件或目錄錯誤
這是我的ImageController代碼處理上載
#create image and embed into story
def create
img_attr = params[:image]
img_attr[:media] = params[:image][:media].first if params[:image][:media].class == Array
image = Image.new img_attr
@story.images << image
if @story.save
Resque.enqueue(ImageQueue,image.id)
respond_to do |format|
format.json {
render :json => [image.to_jq_upload].to_json
}
end
else
render :json => [{:error => 'custom_failure'}], :status => 304
end
end
這是我Resque代碼
class ImageQueue
@queue = :image_queue
def self.perform(image_id)
image = Image.find image_id
image.recreate_delayed_versions!
image.save
end
end
而且上傳路徑在這裏設置
def store_dir
"uploads/stories/#{model.viewable_id}/res"
end
這是錯誤堆棧我得到
No such file or directory - /uploads/stories/533d5b8756617390c0070000/res/636a8fe128.jpg
/Users/skmvasu/.rvm/gems/ruby-2.0.0-p451/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:110:in `initialize'
/Users/skmvasu/.rvm/gems/ruby-2.0.0-p451/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:110:in `open'
/Users/skmvasu/.rvm/gems/ruby-2.0.0-p451/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:110:in `open'
/Users/skmvasu/repo/mangoweb/app/uploaders/image_uploader.rb:97:in `original_dimensions'
/Users/skmvasu/.rvm/gems/ruby-2.0.0-p451/gems/carrierwave-0.10.0/lib/carrierwave/uploader/processing.rb:84:in `block in process!'
/Users/skmvasu/.rvm/gems/ruby-2.0.0-p451/gems/carrierwave-0.10.0/lib/carrierwave/uploader/processing.rb:76:in `each'
/Users/skmvasu/.rvm/gems/ruby-2.0.0-p451/gems/carrierwave-0.10.0/lib/carrierwave/uploader/processing.rb:76:in `process!'
奇怪的是相同的代碼工作在我的Linux機器,和我的生產箱也運行Linux操作系統,卻沒有關於我的新Mac。 ImageMagick有問題嗎?我通過Homebrew安裝它。我甚至嘗試卸載它,然後用源代碼重新安裝它,但那也不起作用。
我不知道我在做什麼錯在這裏?請幫我解決這個問題。
這聽起來像minimagick給你悲傷,而不是imagemagick本身。你會考慮使用'Rmagick'而不是minimagick嗎? http://rmagick.rubyforge.org/這是一個很好的鏈接:http://blog.paulopoiati.com/2013/01/28/installing-rmagick-in-mac-os-x-mountain-lion-with-homebrew/ 在開發和生產機器上,我已經在osx和ubuntu上用rmagick取得了很大的成功。 Rmagick也完全兼容carrierwave。 – Starkers