我正在使用 OmniAuth 来允许用户使用他们的 Google OpenID 帐户登录。当我尝试使用 WEBrick 以开发模式登录时,出现 WEBrick::HTTPStatus::RequestURITooLarge 错误。当我将它部署到我的 rails 主机时,它工作正常。我应该使用不同的 Web 服务器来代替 WEBrick 吗?
问问题
4174 次
5 回答
17
奇怪,我想知道 WEBrick 的 URI 长度限制是多少。你可以试试thin
http://code.macournoyer.com/thin/。我有时在本地使用它进行开发,它似乎工作得很好。
于 2011-02-08T05:13:12.380 回答
11
正如 OmniAuth 的 railscast 236 中所提到的,WEBrick 在 OpenID 给出的长 url 上存在问题。对我有用的解决方案是将 Mongrel 添加到您的 gemfile 中。
宝石'杂种','1.2.0.pre2'
于 2011-02-09T04:36:30.983 回答
7
在目录中添加一个名为webrick.rb
file 的文件config\initializers
。
if defined?(WEBrick::HTTPRequest)
WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
end
于 2013-03-07T01:31:02.577 回答
3
在最新的 ruby 源中,url 大小限制已从 1024 更改为 2083。我希望包含此修复程序的更新 ruby 版本将很快发布:)
https://github.com/ruby/ruby/blob/trunk/lib/webrick/httprequest.rb#L291
于 2011-07-03T10:41:31.547 回答
0
我在使用Webbrick 的 Caseproof 的 DataTables gem和一个有很多列(> 15)的表中遇到了同样的问题。切换到瘦服务器也解决了我的问题。DataTables是一个用于创建表格的 javascript/jquery 插件。
于 2011-08-25T01:52:30.187 回答