4

次のように、Rails アプリケーションで PaperClip プラグインを使用しています。

  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

開発 (Mac OSX + Mongrel) では問題なく動作します。しかし、本番環境 (Linux Debian + Apache/Passenger) に配置すると、.gif のみが受け入れられ、.png および .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.

いくつかのチュートリアルが示唆するように、次の行を追加しようとしましたが、役に立ちませんでした!

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

3 に答える 3

5

運用サーバーで、次を実行してみてください。

which identify

これにより、ImageMagick の識別バイナリへのパスが表示されます。ImageMagick がインストールされていないか、パスにない場合は、バイナリを識別します。

「/usr/bin/identify」のようなものが返される場合は、production.rb 環境ファイルの Paperclip オプションを次のように設定します。

Paperclip.options[:command_path] = "/usr/bin"
于 2009-10-28T15:04:29.663 に答える
4

他の誰かがこの問題に遭遇した場合に備えて、私の Mac OSX Snow Leopard で JPG ファイルを処理するときに同じエラーが発生しました (ただし、GIF ファイルは正常に機能しました)。Rails 3.0.5 と 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.

http://www.ijg.org/files/jpegsrc.v8c.tar.gzで入手できる jpeg エンコーディング ライブラリをソースからインストールすることで問題を解決しました。

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

次に、ソースから ImageMagick を再インストールしました。

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

その後、Paperclip で JPG ファイルを正常にアップロードできました。

[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
于 2011-04-21T00:09:42.923 に答える
0

Lionにアップグレードした後も同じ問題が発生しました。'identify image.jpg'を実行すると、dyld: Library not loadedエラーが発生しました。

この投稿は、問題の解決に役立ちました。

于 2012-02-25T22:10:58.020 に答える