【发布时间】:2012-04-07 13:28:22
【问题描述】:
我在 Rails 应用程序中使用 carrier_wave 和 mini_magick gem 以及 ImageMagick。所有版本都是最新的。
它在开发模式下运行良好。但是,我刚刚部署了该应用程序,它在生产模式下无法运行。
当我请求 mini_magick 调整图像大小时出现问题:
rake aborted!
No such file or directory - gm identify -ping /tmp/mini_magick20120407-19273-jjzz44.jpg
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:71:in `spawn'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:71:in `spawn'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:55:in `run!'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:41:in `run'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:405:in `run'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:399:in `run_command'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:198:in `valid?'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:163:in `create'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:73:in `read'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:134:in `block in open'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:133:in `open'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:133:in `open'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/carrierwave-0.6.0/lib/carrierwave/processing/mini_magick.rb:245:in `manipulate!'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/carrierwave-0.6.0/lib/carrierwave/processing/mini_magick.rb:145:in `resize_to_fit'
当我注释掉 CarrierWave 对“resize_to_fit”图像的请求时,一切正常。
我已经读到 mini_magick 在比赛条件方面存在一些问题 /tmp 目录中的文件被删除的位置 mini_magick 之前的垃圾收集器可以处理它们,但是那些 案例似乎处理大图像和/或云存储。
我的图像文件只有 6K,而且一切都是本地的,所以我觉得很难 相信垃圾收集器正在突袭并删除 /tmp 文件,然后才能调整它的大小。 (但话又说回来,我没有 对这些事情发生的时间的想法,所以我可能是错的。)
谁能帮我解决这个问题?
谢谢, 拉里
【问题讨论】:
-
生产环境中是否存在
tmp目录? -
您找到解决方案了吗?安装 minimagick 并不能解决我的问题。
标签: ruby-on-rails carrierwave minimagick