WEBrick:RequestURITooLarge:我应该更新或使用其他服务器吗?

时间:2011-11-30 21:27:26

标签: ruby-on-rails ruby-on-rails-3 omniauth webrick

我目前有:

$ rails s
=> Booting WEBrick
=> Rails 3.0.9 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-11-30 13:18:00] INFO  WEBrick 1.3.1
[2011-11-30 13:18:00] INFO  ruby 1.9.2 (2011-02-18) [x86_64-darwin10.8.0]
[2011-11-30 13:18:00] INFO  WEBrick::HTTPServer#start: pid=4204 port=3000

我遇到的问题是我正在使用openID进行身份验证并收到以下错误:

[2011-11-30 13:18:19] ERROR WEBrick::HTTPStatus::RequestURITooLarge

在浏览器中:

Request-URI Too Large
WEBrick::HTTPStatus::RequestURITooLarge
WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18) at macbook-pro.local:3000

我该如何解决这个问题?我可以更新WEBrick,还是真的需要使用其他Web服务器?

由于

3 个答案:

答案 0 :(得分:8)

在Ruby 1.9.3中。来源,它说MAX_URI_LENGTH = 2083.这意味着最新版本的Webrick无法处理更长的网址。这就是WEBrick :: HTTPStatus :: RequestURITooLarge异常告诉你的。

因此,解决方案是使用不同的Web服务器。其中最受欢迎的是Thin:

sudo gem install thin

cd to/your/rails/app

thin -h

thin -a localhost start

答案 1 :(得分:4)

said here一样,您可以使用以下代码更改getDeviceInfo(){ this.sim.getSimInfo().then((info)=>{ this.deviceInfo = info; console.log(this.deviceInfo); alert(this.deviceInfo); }, Error=>{ alert('Could not capture device information!'); }); }

MAX_URI_LENGTH

答案 2 :(得分:0)

我看到你尝试过独角兽:你试过通过捆绑器运行吗?添加:

gem :unicorn

Gemfile并运行:

bundle exec unicorn_rails

启动服务器并浏览到http://localhost:8080