【发布时间】:2014-01-22 20:04:36
【问题描述】:
我已经运行了这个过程来克服 ruby 1.9 和 ImageMagick 的已知问题。
Localhost 运行良好,Deployment 是挂机的地方。根据http://astonj.com/tech/how-to-get-capistrano-to-ignore-upload-directories-carrierwave/配置时达到的最远结果
上传者保持默认设置
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。
【问题讨论】:
标签: ruby-on-rails-3.2 carrierwave minimagick