2011-02-07 34 views
17

我使用OmniAuth允许用户使用他们的Google OpenID帐户登录。当我尝试使用WEBrick以开发模式登录时,出现WEBrick :: HTTPStatus :: RequestURITooLarge错误。当我将它部署到我的Rails主机时,它工作正常。 是否有不同的Web服务器,我应该使用,而不是WEBrick?OmniAuth Google OpenID WEBrick :: HTTPStatus :: RequestURITooLarge

回答

17

奇怪,我不知道WEBrick的URI长度限制是什么。你可以试试thinhttp://code.macournoyer.com/thin/。我有时候会在本地使用这个功能,它似乎很好。

+0

我不得不承认,在网址很长......它包含了很多的查询字符串 – SZH 2011-02-08 13:11:34

+1

我将提交错误与OmniAuth或看看他们是否提供了不使用查询字符串的解决方案。 – raidfive 2011-02-08 18:18:30

+1

薄工作完美! – 2011-08-18 23:35:45

11

正如在用于OmniAuth的railscast 236中所提到的,WEBrick在OpenID提供的长url中遇到了问题。给我工作的解决方案是将Mongrel添加到您的gem文件中。

宝石 '杂种', '1.2.0.pre2'

0

我遇到了同样的问题与Caseproof's DataTables gem使用Webbrick和表有很多列(> 15)。切换到瘦服务器也解决了我的问题。 DataTables是一个用于创建表的javascript/jquery插件。

3

将名为webrick.rb的文件添加到config\initializers目录。

if defined?(WEBrick::HTTPRequest) 
    WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240) 
end