我正在开发一个基于Rail3的应用程序。 在经过数小时的挣扎并最终在win7x64 / ruby 1.9.2上成功安装rmagick 2.13.1 gem后,我又遇到了另一个错误。是的,我听说在Windows上使用Rails可能很痛苦...
我使用carrierwave来处理和上传图片到AWS S3。 处理过程如下
class IconUploader < CarrierWave::Uploader::Base
require 'rmagick'
include CarrierWave::RMagick
...
process :resize_to_fit => [100, 100]
process :convert => :png
...
当我在我的开发机上触发文件上传时,它会弹出一个 Windows 弹窗,显示:
找不到 CORE_RL_magick_.dll
谷歌对此并没有真正有用的建议。
我的 PATH 变量设置为 C:/ruby192/ImageMagick - 这是我安装 ImageMagick 的位置。这个文件夹包含几个 CORE_RL dll,包括 magick。但 DLL 文件本身并没有丢失!
irb > require 'rmagick'
返回 true,
而convert -version
输出如下:
Version: ImageMagick 6.6.9-6 2011-04-14 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP
我有几个问题。
- 如何解决这个问题?
elseif
如果不能,是否有其他支持Windows和Heroku的宝石和/或图形库?else
或者,有没有办法配置carrierwave,在开发环境中不处理图像?
到目前为止,我尝试了ImageMagick v 6.6.9 32位dll,但出现了CORE_RL dll错误;64位静态版本没有dev头文件来编译rmagick gem;64位动态版本在gem编译期间给我大量的undefined reference
错误,除了第一个测试:
checking for snprintf() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
checking for AcquireImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
and so on...
谢谢大家。
gem update --system
更新 RubyGem。至少,在运行Rails服务器时,一切都正常,但是我会收到这个警告消息:注意:Gem.source_index已被弃用,请使用Specification。它将在2011-11-01或之后被删除。
- Lucas