我使用carrierwave和mini_magick上传图片.在开发过程中一切都很好,但在生产中,当我尝试上传图像时,它会引发FloatDomainError(Infinity).我在同一台服务器上托管了几个项目,上传一切都很顺利.
我使用Rails 3.0.10.
任何想法我该如何解决?谢谢
我使用Rails 3.0.10.
任何想法我该如何解决?谢谢
解决方法
我有同样的问题.问题是mini_magick.如果它运行的图像文件识别错误,则识别将输出某种错误,例如
identify: Corrupt JPEG data: 7929 extraneous bytes before marker 0xed `image.jpg' @ warning/jpeg.c/EmitMessage/230. 11811 8665
mini_magick尝试将错误消息解析为维度,结果为0.这会导致除以零,从而导致您提到的异常.这就是为什么它只有一些图像失败的原因.
识别有一个-quiet选项来关闭这些警告信息.我在https://github.com/fschwahn/mini_magick分叉了mini_magick并添加了安静的选项.我希望这个改变会被拉入(或者问题将以更优雅的方式解决).但是,现在您可以通过将以下内容添加到Gemfile来使用我的fork:
gem 'mini_magick',:git => 'git://github.com/fschwahn/mini_magick.git'