Domanda

Sto usando il plug-in PaperClip nella mia applicazione Rails come segue:

  has_attached_file :photo, :styles => {:small => '64X64>', :medium => '250X250>'},
                                      :url  => "/assets/user_photos/:id/:style/:basename.:extension",
                                      :path => ":rails_root/public/assets/user_photos/:id/:style/:basename.:extension"
#  validates_attachment_presence :photo
  validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png','image/gif']
  validates_attachment_size :photo, :less_than => 1.megabytes

Funziona bene sullo sviluppo (Mac OSX + Mongrel). Ma quando lo metto in produzione (Linux Debian + Apache / Passenger) accetta solo .gif e ottengo il seguente errore per .png e .jpg:

 Photo /tmp/stream20091028-20066-1t1a0oz-0 is not recognized by the 'identify' command.
 Photo /tmp/stream20091028-20066-1t1a0oz-0 is not recognized by the 'identify' command.

Ho provato ad aggiungere la seguente riga come suggeriscono alcuni tutorial, ma non mi è stato d'aiuto!

Paperclip.options[:command_path] = "/usr/local/bin"
È stato utile?

Soluzione

Sul tuo server di produzione, prova a eseguire:

which identify

Questo dovrebbe darti il ??tuo percorso al file binario di identificazione di ImageMagick - in caso contrario non hai ImageMagick installato o non è nel tuo percorso.

Se restituisce qualcosa come " / usr / bin / identifica " ;, allora vorrai impostare le opzioni Paperclip nel tuo file di ambiente production.rb su:

Paperclip.options[:command_path] = "/usr/bin"

Altri suggerimenti

Nel caso in cui qualcun altro incontri questo problema, ho avuto lo stesso errore sul mio Mac OSX Snow Leopard durante l'elaborazione dei file JPG (i file GIF hanno funzionato bene). Sono in esecuzione Rails 3.0.5 e Paperclip 2.3.11.

[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError: /var/folders/9D/9DvX1hqSFr04U3drvD9o0U+++TI/-Tmp-/stream20110420-50661-l9je0z.jpg is not recognized by the 'identify' command.

Ho risolto il problema installando dalla sorgente la libreria di codifica jpeg disponibile su http: //www.ijg.org/files/jpegsrc.v8c.tar.gz .

cd /usr/local/src
tar xvfz jpeg-8c.tar.gz
cd jpeg-8c
export MACOSX_DEPLOYMENT_TARGET=10.6
./configure --enable-shared --prefix=$CONFIGURE_PREFIX
make
sudo make install

Quindi ho reinstallato ImageMagick dal sorgente:

cd /usr/local/src
tar xvfz ImageMagick-6.6.9-5.tar.gz
cd ImageMagick-6.6.9-5
export CPPFLAGS=-I/usr/local/include
export LDFLAGS=-L/usr/local/lib
./configure --prefix=/usr/local --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --disable-openmp
make
sudo make install

Successivamente sono stato in grado di caricare correttamente i file JPG con Paperclip.

[paperclip] convert '/var/folders/9D/9DvX1hqSFr04U3drvD9o0U+++TI/-Tmp-/stream20110420-86578-3ntsgn.jpg[0]' -resize "100x100>" '/var/folders/9D/9DvX1hqSFr04U3drvD9o0U+++TI/-Tmp-/stream20110420-86578-3ntsgn20110420-86578-iiszw5' 2>/dev/null
...
[paperclip] saving /Users/xxx/myrailsapp/public/system/images/5/original/IMG_0001.jpg

Ho avuto lo stesso problema dopo l'aggiornamento a Lion. L'esecuzione di "identifica immagine.jpg" ha generato l'errore dyld: libreria non caricata .

Questo post ha aiutato a risolvere il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top