Ruby on rails - Paperclip:生产模式下的png文件出错

时间:2010-02-22 22:35:41

标签: ruby-on-rails paperclip

当我尝试在生产模式下上传png文件时,为什么会出现此错误? 它适用于jpg和gif文件......

[paperclip]处理时收到错误:“识别”命令无法识别#Paperclip :: NotIdentifiedByImageMagickError:/tmp/s3,8354,0.png。>

2 个答案:

答案 0 :(得分:0)

使用编译的PNG(以及其他任何内容)的ImageMagick版本可以解决此问题。

在我的设置中,我在MacOSX上使用/usr/local/ImageMagick-6.6.1/bin 中的ImageMagick二进制下载和我在Apache / Passenger下运行Rails。我已经将Paperclip安装为插件。

完成这项工作需要3个步骤:

1:确保ImageMagick在UNIX命令行级别工作。这包括将它添加到您的路径并导出这些环境变量(当然,指向您的ImageMagick安装)

MAGICK_HOME=/usr/local/ImageMagick-6.6.1
DYLD_LIBRARY_PATH=/usr/local/ImageMagick-6.6.1/lib

在命令行级别检查标识是否适用于您的图像。

2:告诉Paperclip在哪里可以找到ImageMagick可执行文件 在config / environment.rb中,将其添加到文件的底部

Paperclip.options[:command_path] = "/usr/local/ImageMagick-6.6.1/bin"

此时,重新启动Passenger后,您会看到“识别”是在Paperclip中运行但无法识别文件......最后一步是......

3:确定需要这两个导出的环境变量 - 而Apache / Passenger(或其他Web服务器可能)默认不通过这些变量! 在您的乘客vhost文件中添加以下行:

  SetEnv MAGICK_HOME /usr/local/ImageMagick-6.6.1
  SetEnv DYLD_LIBRARY_PATH /usr/local/ImageMagick-6.6.1/lib

重启apache / passenger,它应该可以正常工作

祝你好运!

答案 1 :(得分:-1)

这属于serverfault imo。

您的ImageMagick未使用PNG支持进行编译。见article。我相信谷歌还有无数更多。