【发布时间】:2011-10-20 09:21:30
【问题描述】:
一些系统细节:
- Mac OS X Lion 10.7.2、Rails 3、Paperclip gem。
- ImageMagick 6.7.3-0,使用
/opt/local/bin中的 MacPorts 安装的二进制文件。 - 在开发环境中使用 WEBrick。
我正在尝试上传应该缩小为缩略图的照片。当我这样做时,原始上传的文件被保存并且可以通过 HTTP 正确访问。当我尝试访问缩略图版本时,我收到此错误:
Routing Error
No route matches "[file_URL]"
在此之前,当上传有效的 PNG 文件时,我在 WEBrick 日志中看到此错误:
[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError: /var/folders/n4/62q22gb52rjd0h13cx_j8vv40000gq/T/stream20111020-24984-17560xt-0.png is not recognized by the 'identify' command.>
做which identify 输出:
/opt/local/bin/identify
使用上传文件的路径调用identify,将文件正确识别为PNG文件。
我确认rails server 启动开发环境。我在config/environments/development.rb中添加了以下内容:
Paperclip.options[:command_path] = "/opt/local/bin"
我的照片模型有以下内容:
class Photo < ActiveRecord::Base
has_attached_file :file, :default_style => :view, :styles => {
:view => { :geometry => '520x390>', :format => 'jpg' },
:preview => { :geometry => '160x120>', :format => 'jpg' } }
validates_attachment_content_type :file,
:content_type => [ 'image/jpeg', 'image/pjpeg', 'image/png' ]
end
我的照片控制器:
class PhotosController < ApplicationController
# ...
def create
@photo = Photo.create params[:photo]
end
end
就像我说的,我可以访问 URL 路径 system/files/:id/original 中的原始图像,但是我想要的调整大小的版本无法访问,并且在文件系统中找不到。 WEBrick 的日志表明 Paperclip 甚至无法让 ImageMagick 在调整图像大小之前对其进行识别。
有什么想法吗?提前致谢!
【问题讨论】:
-
当文件最初上传并且回形针尝试处理它时会出现问题(
NotIdentifiedByImageMagickError)。这个问题可能是重复的:stackoverflow.com/questions/1623948/…
标签: ruby-on-rails macos imagemagick paperclip