我刚刚开始玩CarrierWave并且无法让它表现出来。
按照Rails Casts中的说明设置完所有内容后,我收到以下错误:No such file or directory - identify -quiet -ping /tmp/mini_magick20130519-13712-lxhans.jpg
注意:我知道typo in that Rails Cast并且我的代码中不存在该问题。
在我的开发环境中,我安装了libmagickwand-dev
包,运行Rails 3.2.9
和Ruby 1.9.3p194
等。我的Gemfile包含mini_magick
。
传递给服务器的请求是:
{"utf8"=>"✓",
"authenticity_token"=>"8ugcdkjOy/5yeodhuTgMXYdrXlcu2xPjxWTvvRwKnWM=",
"organization"=>{"logo"=>#<ActionDispatch::Http::UploadedFile:0x0000000426c3d0 @original_filename="leather-tshirt-weird-square.jpg",
@content_type="image/jpeg",
@headers="Content-Disposition: form-data; name=\"organization[logo]\"; filename=\"leather-tshirt-weird-square.jpg\"\r\nContent-Type: image/jpeg\r\n",
@tempfile=#<File:/tmp/RackMultipart20130519-13712-1uvmtem>>,
"name"=>"Test Org",
"description"=>"blah",
"timezone"=>"1"},
"commit"=>"Create Organization"}
完整跟踪位于此处:http://pastebin.com/dW5j9NLt
在最初尝试了一些更高级的功能之后,我将代码缩减为以下内容并且仍然没有运气:
class LogoUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
version :thumb do
process :resize_to_limit => [100, 100]
end
def extension_white_list
%w(jpg jpeg gif png)
end
end
编辑:我已将问题缩小到上传后修改图像的问题。如果我进一步简化代码以删除:thumb
大小的创建,那么一切正常。想法?
答案 0 :(得分:6)
没有足够的声誉评论thebrush的回答,但他绝对是对的。 在注意到我实际上一起缺少imagemagick时,我遇到了同样的问题。
所以在Debian / Ubuntu上,这将是诀窍(或'magick'):
apt-get install imagemagick
在使用yum作为数据包管理器(CentOS / RedHat)的操作系统上,您将使用:
yum install ImageMagick
答案 1 :(得分:0)
您缺少存储位置。尝试在storage:file
下添加它 def store_dir
"uploads/logo/#{model.id}"
end
答案 2 :(得分:0)
您是否已明确安装ImageMagick?
在没有安装ImageMagick的情况下使用MiniMagick时出现了同样的错误。据我所知,MiniMagick将操作推迟到mogrify命令,所以如果你不能在命令行上调用mogrify,MiniMagick可能也不能。
A * nix buff能够更放心地回答这个问题,但我认为libmagickwand-dev支持图形库的安装,但实际上并没有自己安装。