Desde a atualização para o Rails 3.1, estou vendo esta mensagem de aviso no meu log de desenvolvimento:
WARN Não foi possível determinar o comprimento do conteúdo do corpo da resposta. Definir o comprimento do conteúdo da resposta ou definir
Response#chunked = true
O que isso significa e como posso removê-lo? Isso é um problema?
ruby-on-rails
ruby
webrick
Nate Bird
fonte
fonte
rails s thin
; Ta-da! Não há mais avisos.Respostas:
A mesma pergunta foi feita a um dos membros do Rails-Core:
https://twitter.com/luislavena/status/108998968859566080
E a resposta:
https://twitter.com/tenderlove/status/108999110136303617
fonte
gem 'thin'
ao seu gemfile, inicie o servidor usandorails server thin
). (oops, só notei que @ Scott Lowe já disse isso acima.)O patch a seguir resolveu o problema no meu caso; não há mais avisos para mim.
204_304_keep_alive.patch
Apenas edite o arquivo activationpresponse.rb na linha 205, como mostrado no link acima; de fato, o link mostra uma correção feita em uma versão futura do Ruby.
Estou usando o Rails 3.2.0 no ruby 1.9.3-p0 instalado através do RVM como um único usuário. Portanto, a localização no meu caso é:
A localização do arquivo a ser alterado varia de acordo com o tipo de instalação, RVM ou não, ou mesmo multiusuário ou único usuário, então estou apenas dando a última parte dele:
Espero que isso possa ser útil para alguém.
EDIT: Este é o link para o commit que alterou a linha em questão no ramo do tronco do projeto ruby.
fonte
Apenas adicionar explicitamente a Gem ao Gemfile se livrou das mensagens de aviso para mim:
fonte
Você também pode usar Thin em vez do Webrick padrão. Adicione isto a
Gemfile
gem 'thin'
então
rails s thin
usará thin e o aviso desaparecerá.fonte
thin
emdevelopment
grupo. O Rails 4 parece buscá-lo automaticamente durante a execuçãorails s
Se você estiver usando .rvm, faça isso para corrigi-lo ...
Como mencionado por João Soares , todos os créditos para ele, é isso que você pode fazer se não quiser se livrar desse aviso no desenvolvimento.
Use seu editor favorito para abrir este arquivo:
Vá para a linha que contém isso (para mim, era realmente a linha 206):
Altere-o, retirado deste patch , para este:
Salve o arquivo e, eventualmente, reinicie o servidor rails
fonte
line 107
para mim.Esse problema foi corrigido na ramificação do tronco do Ruby com esse commit no webrick.
Você pode editar esse arquivo webrick em particular da mesma forma em sua configuração. A localização aproximada pode ser encontrada por:
Para realmente editar o arquivo:
(Ou, em vez de nano, use seu editor favorito.)
fonte
nano `ruby -e"print %x{gem which webrick}.chomp %Q{.rb\n}"`/httpresponse.rb
.Versão do JRuby: se você estiver usando .rvm, faça isso para corrigi-lo ...
Conforme mencionado por João Soares e Kjellski , é isso que você pode fazer se quiser se livrar deste aviso no desenvolvimento e estiver usando o JRuby.
Use seu editor favorito para abrir este arquivo:
Vá para a linha que contém isso (para mim, era a linha 205):
Altere-o, retirado deste patch , para este:
Salve o arquivo e, eventualmente, reinicie o servidor rails.
fonte
Outra solução alternativa que remove a linha incorreta do webrick. Simplesmente não é tão útil:
(você pode precisar
sudo
)fonte
Adicionar
ao seu
application.rb
arquivo e o aviso desaparecerá mesmo com o webrick. Isso também será definidoContent-Length
corretamente na produção ao renderizar uma resposta json ou de texto.fonte