OmniAuthを使用して、ユーザーがGoogleOpenIDアカウントでログインできるようにしています。WEBrickを使用して開発モードでログインしようとすると、WEBrick :: HTTPStatus::RequestURITooLargeエラーが発生します。Railsホストにデプロイすると、正常に機能します。WEBrickの代わりに使用する必要がある別のWebサーバーはありますか?
5 に答える
奇妙なことに、WEBrickのURIの長さの制限は何ですか。thin
http://code.macournoyer.com/thin/を試すことができます。私は時々これを開発のためにローカルで使用します、そしてそれはうまくいくようです。
OmniAuthのrailscast236で述べたように、WEBrickはOpenIDによって指定された長いURLで問題が発生します。私のために働いた与えられた解決策はあなたのgemfileにMongrelを追加することでした。
宝石'雑種'、 '1.2.0.pre2'
fileというwebrick.rb
ファイルをconfig\initializers
ディレクトリに追加します。
if defined?(WEBrick::HTTPRequest)
WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
end
最新のrubyソースでは、URLサイズの制限が1024から2083に変更されています。この修正が含まれている更新されたルビーバージョンがすぐにリリースされることを願っています:)
https://github.com/ruby/ruby/blob/trunk/lib/webrick/httprequest.rb#L291
Webbrickと多くの列(> 15)を持つテーブルを使用するCaseproofのDataTablesgemでこの同じ問題に遭遇しました。シンサーバーに切り替えると、私の問題も解決しました。DataTablesは、テーブルを作成するためのjavascript/jqueryプラグインです。