скрепка принимает JPG и PNG на производстве - PullRequest
4 голосов
/ 28 октября 2009

Я использую плагин PaperClip в своем приложении Rails следующим образом:

  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"

Ответы [ 3 ]

5 голосов
/ 28 октября 2009

На рабочем сервере попробуйте выполнить:

which identify

Это должно дать вам ваш путь к бинарному идентификатору ImageMagick - если это не так, у вас не установлен ImageMagick или его нет в вашем пути.

Если он возвращает что-то вроде "/ usr / bin / identifier", тогда вы захотите установить параметры Paperclip в файле среды production.rb на:

Paperclip.options[:command_path] = "/usr/bin"
4 голосов
/ 21 апреля 2011

В случае, если кто-то столкнулся с этой проблемой, у меня была такая же ошибка на моем 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.

Я исправил проблему, установив из источника библиотеку кодирования jpeg, доступную по адресу 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

Затем я переустановил 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

После этого я смог успешно загрузить файлы JPG с помощью 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
0 голосов
/ 26 февраля 2012

У меня была такая же проблема после обновления до Lion. Запустив файл «tify image.jpg », выдал ошибку dyld: Library not loaded.

Этот пост помог решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...