我在共享托管服务器上安装任何 Ruby On Rails应用时遇到问题。 Mongrel将html显示为所有页面的纯文本。任何应用程序都会出现问题,即使我创建了一个测试空应用程序并添加了一个脚手架视图而没有更改任何内容。
看起来Mongrel在尝试将Cookie放入响应标头时崩溃了。 HTTP标头看起来不完整,缺少Content-type和其他参数:
curl 127.0.0.1:12002/users -I
HTTP/1.1 200 OK
Connection: close
Date: Wed, 26 May 2010 09:46:50 GMT
Content-Length: 0
以下是mongrel.log的输出
Error calling Dispatcher.dispatch #<NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]>
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/cgi.rb:108:in `send_cookies'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/cgi.rb:136:in `out'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/http_response.rb:65:in `start'
红宝石1.8.7
rails 2.3.8
mongrel 1.1.5
有没有人见过这样的东西?
答案 0 :(得分:2)
这个解决方法固定了我的: https://rails.lighthouseapp.com/projects/8994/tickets/4690#ticket-4690-23
它基本上是在config / initializers下添加这个mongrel.rb
答案 1 :(得分:1)
在我的情况下,使用“mongrel_rails”命令运行mongrel时出现了这个确切的问题。使用“script / server”命令(如果它存在,它也会启动mongrel)解决了这个问题。
也许您可以写信给您的网站托管服务提供商进行检查。
答案 2 :(得分:0)