找不到回形针文件错误

我刚刚从回形针导轨插件切换到回形针gem。 该项目是rails 2.3应用程序,我正在使用paperclip 2.7.2 gem。

我收到以下奇怪的错误:

identify: unable to open image `file': No such file or directory @ error/blob.c/OpenBlob/2617. identify: no decode delegate for this image format `file' @ error/constitute.c/ReadImage/544. 

看起来像paperclip正在寻找一个名为’file’的文件,但我不知道为什么。 我没有改变以前的任何代码。 它曾经工作过,我所做的只是升级到更新的版本并在插件上使用gem。

有任何想法吗?

更新

这是一个纸夹中的错误,它不能正确解析命令的内容。 我深入研究回形针来源,找到:

 def run(cmd, arguments = "", local_options = {}) if options[:image_magick_path] Paperclip.log("[DEPRECATION] :image_magick_path is deprecated and will be removed. Use :command_path instead") end command_path = options[:command_path] || options[:image_magick_path] Cocaine::CommandLine.path = [Cocaine::CommandLine.path, command_path].flatten.compact.uniq local_options = local_options.merge(:logger => logger) if logging? && (options[:log_command] || local_options[:log_command]) Cocaine::CommandLine.new(cmd, arguments, local_options).run end 

 # Uses ImageMagick to determing the dimensions of a file, passed in as either a # File or path. # NOTE: (race cond) Do not reassign the 'file' variable inside this method as it is likely to be # a Tempfile object, which would be eligible for file deletion when no longer referenced. def self.from_file file file_path = file.respond_to?(:path) ? file.path : file raise(Paperclip::NotIdentifiedByImageMagickError.new("Cannot find the geometry of a file with a blank name")) if file_path.blank? geometry = begin Paperclip.run("identify", "-format %wx%h :file", :file => "#{file_path}[0]") rescue Cocaine::ExitStatusError "" rescue Cocaine::CommandNotFoundError => e raise Paperclip::CommandNotFoundError.new("Could not run the `identify` command. Please install ImageMagick.") end parse(geometry) || raise(NotIdentifiedByImageMagickError.new("#{file_path} is not recognized by the 'identify' command.")) end 

由于某种原因,Paperclip.run命令无法替换:file占位符。 我通过在命令行上运行以下内容来validation这一点:

 identify :file 

猴子手动修补替换品会产生类似的事情发生的其他错误。

好的,我设法解决了它。

这是可卡因的一个问题。 似乎paperclip依赖可卡因只能说它必须是Cociane> 0.02。 最新版本的Cocaine 0.4.2(在撰写本文时)有一个新的API,它不向后兼容。 你需要降级到可卡因0.3.2。

在回形针之前简单地将它放在你的Gemfile中:

 gem "cocaine", "0.3.2"