此错误仅在Ruby on Rails服务器执行时发生。
我尝试通过实现自己的功能来绕过Carrierwave的调整大小选项,但结果相同。
当我从命令行运行脚本时(我需要' mini_magick' gem)。一切都完美无瑕。
MiniMagick gem似乎安装正确,说实话,我有点想出来解决这个问题。
某些版本(不确定是否有用):
感谢任何帮助。
-edit,我使用的是Windows 8.1
示例代码:
require 'mini_magick'
filename = 'test.jpg'
image = MiniMagick::Image.open(filename)
image.resize "1000x1000"
image.format "png"
image.write "test.png"
从cmd执行上面的代码完美无瑕。
thumb = MiniMagick::Image.open(i.image.path)
thumb.resize "200*200"
上面的代码片段在放入控制器(创建)时会在RoR中抛出错误
或者,直接从carrierwave取消注释resize选项会引发完全相同的错误。
# version :thumb do
# process :resize_to_fill => [200, 200]
# end
还有一点注意事项: 我已经禁用了minimagicks验证,以确定导致它在当时发生错误的原因:
无法使用MiniMagick进行操作,也许它不是图像?原始错误:找不到可执行文件:"识别"
我希望这可以解决一些问题。
-edit
我决定将Windows作为开发平台,并作为开发平台切换到Linux。修复了我的所有问题(事后看来,我的错误可能是由于某些方面缺乏对imagemagick方面的依赖)。
答案 0 :(得分:1)
我最近在以下环境中遇到过类似的问题:
在RubyMine的rails控制台中,我会得到:
未找到可执行文件:"识别"
只需键入两件事后就可以了:filename = 'test.jpg'
image = MiniMagick::Image.open(filename)
其中一个步骤是将C:\ ImageMagick-6.9.0-Q16添加到我的Windows PATH环境变量中。起初,这没有任何帮助。但是,在关闭并重新打开RubyMine之后,问题就消失了 - 我假设因为对PATH env var的更改(使用独立的Windows命令提示符完成)并没有影响RubyMine IDE环境。
答案 1 :(得分:0)
未找到可执行文件:"识别"
这是MiniMagick(Source code)的错误消息。我想,正如错误消息所示,您的服务器找不到可执行文件"识别"。
确保您的ENV [' PATH']具有"识别"的路径。存在。
答案 2 :(得分:0)
我遇到了同样的问题。
它在我的localhost上完美运行,但在服务器上(Windows 2012),它只能用作rake任务。当在应用程序内部运行时,它无法说
NoMethodError (undefined method `resize' for #<MiniMagick::Image:0x28c3260>):
不幸的是,路径变量已设置...
我通过在模型中使用minimagick-stuff而不是控制器来实现它......令人讨厌的解决方法。