Начиная с обновления до Rails 3.1 я вижу это предупреждение в моем журнале разработки:
ПРЕДУПРЕЖДЕНИЕ. Не удалось определить длину содержимого тела ответа. Установить длину содержимого ответа или установить
Response#chunked = true
Что это значит и как я могу удалить это? Это проблема?
ruby-on-rails
ruby
webrick
Нейт Берд
источник
источник
rails s thin
; Та-да! Нет больше предупреждений.Ответы:
Задал тот же вопрос одному из участников Rails-Core:
https://twitter.com/luislavena/status/108998968859566080
И ответ:
https://twitter.com/tenderlove/status/108999110136303617
источник
gem 'thin'
в свой gemfile, запустите сервер используяrails server thin
). (ой, только заметил , что @Scott Lowe уже сказал , что это выше.)Следующий патч решил проблему в моем случае; больше никаких предупреждений для меня.
204_304_keep_alive.patch
Просто отредактируйте файл httpresponse.rb в строке 205, как показано по ссылке выше; фактически ссылка показывает исправление, внесенное в будущий выпуск Ruby.
Я использую rails 3.2.0 на ruby 1.9.3-p0, установленном через RVM, как один пользователь. Так что расположение в моем случае:
Расположение файла, который нужно изменить, отличается в зависимости от типа установки, RVM или нет, или даже многопользовательского или однопользовательского, поэтому я просто даю последнюю часть этого:
Я надеюсь, что это может быть полезно для кого-то.
РЕДАКТИРОВАТЬ: Это ссылка на коммит, который изменил строку в магистральной ветви проекта ruby.
источник
Просто явное добавление Gem в Gemfile избавило меня от предупреждений:
источник
Вы также можете использовать Thin вместо Webrick по умолчанию. Добавьте это к
Gemfile
gem 'thin'
затем
rails s thin
будет использовать тонкий, и предупреждение исчезнет.источник
thin
вdevelopment
группу. Rails 4, кажется, поднимает его автоматически во время работыrails s
Если вы используете .rvm, сделайте это, чтобы исправить это ...
Как упомянул Жоао Соареш , все его заслуги, это то, что вы можете сделать, если не хотите избавиться от этого предупреждения о разработке.
Используйте ваш любимый редактор, чтобы открыть этот файл:
Перейдите к строке, которая содержит это (для меня это была действительно строка 206):
Измените его, взятый из этого патча , на этот:
Сохраните файл и перезапустите сервер rails
источник
line 107
для меня.Эта проблема была исправлена в ветке Ruby с этим коммитом в webrick.
Вы можете редактировать этот конкретный файл webrick аналогично в вашей настройке. Примерное местоположение можно найти по:
Чтобы на самом деле редактировать файл:
(Или вместо nano используйте ваш любимый редактор.)
источник
nano `ruby -e"print %x{gem which webrick}.chomp %Q{.rb\n}"`/httpresponse.rb
.Версия JRuby: Если вы используете .rvm, сделайте это, чтобы это исправить ...
Как упоминали Жоао Соареш и Кьельски , это то, что вы можете сделать, если хотите избавиться от этого предупреждения о разработке и используете JRuby.
Используйте ваш любимый редактор, чтобы открыть этот файл:
Перейдите к строке, содержащей это (для меня это была строка 205):
Измените его, взятый из этого патча , на этот:
Сохраните файл и перезапустите сервер rails.
источник
Другой обходной путь, который удаляет оскорбительную строку из webrick. Это просто не так полезно:
(вам может понадобиться
sudo
)источник
Добавить
в ваш
application.rb
файл, и предупреждение исчезнет даже с вебрик. Это также будетContent-Length
правильно настроено при рендеринге json или текстового ответа.источник