Büroklammer zu akzeptieren jpg und png auf Produktion
-
06-07-2019 - |
Frage
Ich bin mit Paperclip-Plugin in meiner Rails-Anwendung wie folgt:
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
Es funktioniert gut auf Entwicklung (Mac OSX + Mongrel). Aber wenn ich es in der Produktion (Linux Debian + Apache / Beifahrer) nur akzeptiert .gif und ich erhalte die folgenden Fehler für .png und .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.
Ich habe versucht, die folgende Zeile wie einige Tutorials schlagen vor, aber es hat nicht geholfen!
Paperclip.options[:command_path] = "/usr/local/bin"
Lösung
Auf dem Produktionsserver mehr, wählen Sie:
which identify
Dies sollte Sie geben Ihren Weg binär ImageMagicks identifizieren - wenn es Sie ImageMagick nicht nicht installiert haben, oder es ist nicht in Ihrem Pfad
.Wenn es gibt so etwas wie „/ usr / bin / identifizieren“, dann werden Sie die Büroklammer Optionen in Ihrer production.rb Umgebungsdatei einstellen möchten:
Paperclip.options[:command_path] = "/usr/bin"
Andere Tipps
Falls jemand anderes in dieses Problem läuft, hatte ich den gleichen Fehler auf meinem Mac OSX Snow Leopard als JPG-Dateien verarbeiten (GIF-Dateien funktionierten gut obwohl). Ich bin mit Rails 3.0.5 und 2.3.11 Büroklammer.
[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.
Ich reparierte das Problem durch Installation aus dem Quellcode der JPEG-Kodierung Bibliothek finden Sie unter 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
Dann habe ich ImageMagick von der Quelle neu installiert:
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
Danach konnte ich erfolgreich JPG-Dateien mit Paperclip hochladen.
[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
Ich hatte das gleiche Problem nach dem Lion aktualisieren. Running 'identifizieren image.jpg' warf dyld: Library not loaded
Fehler.
Dieser Beitrag das Problem geholfen zu lösen.