我已经运行这个过程来克服已知的ruby 1.9和ImageMagick问题。
Localhost运行良好,部署是挂起的地方。根据{{3}}
配置时达到的最远结果上传者维护默认设置
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
创建2个版本
version :base do
process :resize_to_limit => [200, 200]
end
version :tiny do
process :resize_to_limit => [50, 50]
end
ImageMagick和MiniMagick肯定是加载并运行的,因为当我加载图像时,通过Rails.root / shared / uploads中的符号链接创建了一个tmp文件夹。在图像加载时,它会创建一个包含原始文件的文件夹,第二个图像的前缀为我正在创建的版本(基础)。
基本上它停在那里。我应该创建第三个版本,但没有尝试这样做。此外,第二个版本不会重新调整大小:文件处于其原始状态及其新名称。因此有些事情正在中断重新调整大小并返回错误:
没有这样的文件或目录 - 识别-quiet -ping /tmp/mini_magick20140105-74944-bhyai4.png
堆栈跟踪如下:
subexec (0.2.3) lib/subexec.rb:71:in `spawn'
subexec (0.2.3) lib/subexec.rb:71:in `spawn'
subexec (0.2.3) lib/subexec.rb:55:in `run!'
subexec (0.2.3) lib/subexec.rb:41:in `run'
mini_magick (3.5.0) lib/mini_magick.rb:410:in `run'
mini_magick (3.5.0) lib/mini_magick.rb:404:in `run_command'
mini_magick (3.5.0) lib/mini_magick.rb:201:in `valid?'
mini_magick (3.5.0) lib/mini_magick.rb:166:in `create'
mini_magick (3.5.0) lib/mini_magick.rb:76:in `read'
mini_magick (3.5.0) lib/mini_magick.rb:137:in `block in open'
mini_magick (3.5.0) lib/mini_magick.rb:136:in `open'
mini_magick (3.5.0) lib/mini_magick.rb:136:in `open'
carrierwave (0.9.0) lib/carrierwave/processing/mini_magick.rb:260:in `manipulate!'
我不确定问题究竟在哪里,在Carrierwave,这个subexec例程的mini_magick之间。但似乎某个地方tmp文件的位置正在被删除。
我使用的是ruby-1.9.3-p125,carrierwave 0.9.0 MiniMagick 3.5.0。
答案 0 :(得分:0)
问题在于两个问题,但在问题的答案中,localhost和生产机器之间有什么区别。
答案:Passenger v3,以及它在Apache启动时的行为方式。 (乘客4显然没有问题)
最好通过this proposed solution解决,并使用以下命令编辑开发和/或生产环境文件的结尾:
ENV['PATH'] = "/usr/local/bin:#{ENV['PATH']}"