2014-01-05 27 views
0

我已經運行這個程序來克服ruby 1.9和ImageMagick的已知問題。Carrierwave文件上傳和調整大小被中斷

本地主機運行良好,部署是掛斷的地方。最遠時根據http://astonj.com/tech/how-to-get-capistrano-to-ignore-upload-directories-carrierwave/

上傳配置達到了所取得的成果保持默認設置

def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

有2個版本,以創建

version :base do 
    process :resize_to_limit => [200, 200] 
    end 

    version :tiny do 
    process :resize_to_limit => [50, 50] 
    end 

ImageMagick的和MiniMagick是肯定加載並運行,因爲當我加載圖像,通過Rails.root/shared/uploads中的符號鏈接創建一個tmp文件夾。在圖像加載時,它會創建一個帶有原始文件夾的文件夾,第二個圖像的前綴是我創建的版本(基本)。

基本上它停在那裏。我應該創建第三個版本,但沒有試圖這樣做。此外,第二個版本不會被重新調整大小:文件處於其原始狀態並帶有新名稱。因此,一些遮住大小調整過程,並返回一個錯誤:

No such file or directory - identify -quiet -ping /tmp/mini_magick20140105-74944-bhyai4.png

堆棧跟蹤如下:

subexec (0.2.3) lib/subexec.rb:71:in `spawn' 
subexec (0.2.3) lib/subexec.rb:71:in `spawn' 
subexec (0.2.3) lib/subexec.rb:55:in `run!' 
subexec (0.2.3) lib/subexec.rb:41:in `run' 
mini_magick (3.5.0) lib/mini_magick.rb:410:in `run' 
mini_magick (3.5.0) lib/mini_magick.rb:404:in `run_command' 
mini_magick (3.5.0) lib/mini_magick.rb:201:in `valid?' 
mini_magick (3.5.0) lib/mini_magick.rb:166:in `create' 
mini_magick (3.5.0) lib/mini_magick.rb:76:in `read' 
mini_magick (3.5.0) lib/mini_magick.rb:137:in `block in open' 
mini_magick (3.5.0) lib/mini_magick.rb:136:in `open' 
mini_magick (3.5.0) lib/mini_magick.rb:136:in `open' 
carrierwave (0.9.0) lib/carrierwave/processing/mini_magick.rb:260:in `manipulate!' 

我不能肯定,其中問題確實出,Carrierwave之間,mini_magick這個子程序的例程。但似乎某處tmp文件的位置正在被丟棄。

我使用的是ruby-1.9.3-p125,carrierwave 0.9.0 MiniMagick 3.5.0。

回答

0

問題在於沒有一點,但在問題的答案中,localhost和生產機器有什麼區別。
答案:Passenger v3,以及它在啓動Apache時的行爲方式。 (4乘客顯然沒有這個問題)

來說,最好通過開發和/或生產的this proposed solution和編輯結束解決了環境文件:

ENV['PATH'] = "/usr/local/bin:#{ENV['PATH']}" 
相關問題