我正在使用CarrierWave和MiniMagick来调整大小并上传文件。我的上传器中有版本指令
version :thumb do
process :resize_to_limit => [100, 100]
end
但是当我上传文件时,操作失败。我得到的例外是
No such file or directory - identify -ping /var/folders/Au/AuBTXIH8HzCAhKdy0jvi+k+++TI/-Tmp-/mini_magick20120906-64039-1gx1ptu.jpg
我上传的文件名是hat.jpg。 /var/folders/Au/AuBTXIH8HzCAhKdy0jvi+k+++TI/-Tmp-/
目录确实存在,但是当我进行上传时,我没有看到有问题的文件被创建。
有关问题的建议吗?
编辑:我发现具体问题是MiniMagick正在生成运行identify
的命令,并且找不到identify命令。但是它位于/usr/local/bin/identify
的系统上 - 它是作为ImageMagick的一部分安装的。出于某种原因,MiniMagick没有把它拿起来。
答案 0 :(得分:1)
发现问题出在我的RubyMine IDE上,而不是我的应用程序或ImageMagick或MiniMagick。
当启动RubyMine IDE时(通过双击RubyMine图标),它似乎不会继承终端会话所存在的PATH。因此,当我从RubyMine中启动rails服务器时,/usr/local/bin/
不在我的服务器路径中。
从命令行启动服务器时,我能够成功运行我的应用程序。我还发现,如果我从命令行启动RubyMine(使用open -a RubyMine
),那么终端会话将被继承,一切都按预期工作。
答案 1 :(得分:0)
添加到/ etc / paths的TOP:
/usr/local/bin/
这将告诉mac OS新shell应具有此变量。 我说添加到顶部因为使用自制软件,你经常添加覆盖内置mac应用程序的路径