【问题标题】:Ruby on rails - Paperclip : Error with png files in production modeRuby on rails - Paperclip:生产模式下的 png 文件出错
【发布时间】:2010-02-22 22:35:40
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails paperclip


    【解决方案1】:

    你可以使用编译了 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后,你会看到'identify'在Paperclip中运行,但无法识别文件……最后一步是……

    3:识别需要这两个导出的环境变量——而 Apache/Passenger(或其他 Web 服务器可能)默认情况下不会通过这些变量! 在您的乘客虚拟主机文件中添加以下行:

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

    重启 apache/passenger 就可以了

    祝你好运!

    【讨论】:

      【解决方案2】:

      这属于服务器故障 imo。

      您的 ImageMagick 编译时不支持 PNG。请参阅此article。我敢肯定,Google 上还有无数。

      【讨论】:

        猜你喜欢
        • 2013-05-25
        • 1970-01-01
        • 1970-01-01
        • 2022-08-09
        • 1970-01-01
        • 1970-01-01
        • 2014-09-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多