Я использую OmniAuth, чтобы пользователи могли входить в систему со своими учетными записями Google OpenID. Когда я пытаюсь войти в режим разработки с помощью WEBrick, я получаю ошибку WEBrick:: HTTPStatus:: RequestURITooLarge. Когда я разворачиваю его на мой рельсовый хост, он работает нормально. Есть ли другой веб-сервер, который я должен использовать вместо WEBrick?
OmniAuth Google OpenID WEBrick:: HTTPStatus:: RequestURITooLarge
Ответ 1
Странно, мне интересно, что ограничение длины URI для WEBrick. Вы можете попробовать thin
http://code.macournoyer.com/thin/. Я иногда использую это локально для разработки и, похоже, отлично работает.
Ответ 2
Как упоминалось в railscast 236 для OmniAuth, WEBrick имеет проблемы с длинными URL-адресами, данными OpenID. Решение, с которым я работал, заключалось в том, чтобы добавить Mongrel в ваш gemfile.
gem 'mongrel', '1.2.0.pre2'
Ответ 3
Предел размера URL-адреса уже изменился с 1024 до 2083 в последнем рубиновом источнике. Я надеюсь, что обновленная версия Ruby с включенным исправлением будет выпущена в ближайшее время:)
https://github.com/ruby/ruby/blob/trunk/lib/webrick/httprequest.rb#L291
Ответ 4
Добавьте файл с именем webrick.rb
в каталог config\initializers
.
if defined?(WEBrick::HTTPRequest)
WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
end
Ответ 5
Я столкнулся с этой проблемой с Caseproof DataTables gem с использованием Webbrick и таблицы с большим количеством столбцов ( > 15). Также я решил переключиться на тонкий сервер. DataTables - это javascript/jquery-плагин для создания таблиц.