我使用OmniAuth允许用户使用他们的Google OpenID帐户登录。当我尝试使用WEBrick以开发模式登录时,我收到WEBrick :: HTTPStatus :: RequestURITooLarge错误。当我将它部署到我的rails主机时,它工作正常。 我应该使用不同的Web服务器而不是WEBrick吗?
答案 0 :(得分:17)
奇怪,我想知道WEBrick的URI长度限制是什么。您可以尝试thin
http://code.macournoyer.com/thin/。我有时会在本地使用它进行开发,看起来效果很好。
答案 1 :(得分:11)
正如在OmniAuth的railscast 236中所提到的,WEBrick在OpenID给出的长网址上遇到了麻烦。给我的解决方案是将Mongrel添加到你的gemfile中。
gem'mongrel','1.2.0.pre2'
答案 2 :(得分:6)
将名为webrick.rb
的文件添加到config\initializers
目录。
if defined?(WEBrick::HTTPRequest)
WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
end
答案 3 :(得分:3)
最新的ruby源中的url大小限制已从1024更改为2083。我希望包含此修复程序的更新ruby版本将很快发布:)
https://github.com/ruby/ruby/blob/trunk/lib/webrick/httprequest.rb#L291
答案 4 :(得分:0)
我使用Webbrick和一个包含大量列(> 15)的表遇到Caseproof's DataTables gem同样的问题。切换到瘦服务器也解决了我的问题。 DataTables是一个用于创建表的javascript / jquery插件。