我在Ruby on Rails应用程序中使用Carrierwave和RMagick。 一切都在开发中很好,但在我的临时环境中,我遇到了一些问题。
我将其跟踪到RMagick似乎存在的问题,丢失了传递给它的部分文件路径。这是我的rails控制台的一些输出
require 'RMagick'
=> true
# Prove the file exists
File.open('/tmp/logo.png')
=> #<File:/tmp/logo.png>
# Cant find it with RMagick
Magick::Image::read('/tmp/logo.png').first
=> Magick::ImageMagickError: unable to open file `o.png' @ error/png.c/ReadPNGImage/3698
# Unless I add some characters at the start of my filepath (anything will do)
Magick::Image::read('12345678/tmp/logo.png').first
=> 0x200=>200x100 4634766966517661696x200+100+0 DirectClass 8-bit 6kb
我已经尝试过挖掘RMagick的源代码,但没有取得多大成功。我希望有人可以建议可能出错的地方。
我尝试重新编译ImageMagick并多次重新部署代码 我们使用rvm,Ruby 1.9.2,Rails 3.2.11并使用Capistrano进行部署。
答案 0 :(得分:1)
我的同事找到了解决方案 -
重新安装rmagick gem。