在我的rails 3 app中,simple_captcha不会在生产模式下显示图像

时间:2011-05-04 19:14:37

标签: ruby-on-rails captcha

simple_captcha可以在我的开发机器上找到,但它不在我的共享托管服务器(Dreamhost)上。

安装了ImageMagick并且RMagick就可以了。 可能有什么不对?

我检查了日志,但没有显示任何错误消息。

Started GET "/simple_captcha/0245065ca02e2f4fadc22b3f08e1357ea74221f8?time=1304535698" for 99.122.173.225 at Wed May 04 12:01:38 -0700 2011

当我输入地址(/ simple_captcha / 0245065ca02e2f4fadc22b3f08e1357ea74221f8?time = 1304535698)时,它表示“图像无法显示,因为它包含错误”。

知道什么是错的吗?

感谢。

萨姆

2 个答案:

答案 0 :(得分:6)

您是否尝试过评论

config.action_dispatch.x_sendfile_header = "X-Sendfile" 

线?

在此处找到: Rails sends 0 byte files using send_file

答案 1 :(得分:3)

我在运行Ubuntu 10.10 + Nginx + Passenger的服务器上遇到了同样的问题。

我在这个帖子中找到了解决方案:http://www.mail-archive.com/heroku@googlegroups.com/msg06836.html

simple_captcha使用send_file将图像发送到浏览器。因此,您需要在生产环境中启用XSendfile。您可以将此行放在您的环境/ production.rb中:

config.action_dispatch.x_sendfile_header = "X-Sendfile"

如果您使用的是nginx,则必须使用X-Accel-Redirect。见http://wiki.nginx.org/XSendfile

config.action_dispatch.x_sendfile_header = "X-Accel-Redirect"