Desde la actualización a Rails 3.1, veo este mensaje de advertencia en mi registro de desarrollo:
WARN No se pudo determinar la longitud del contenido del cuerpo de la respuesta. Establecer la longitud del contenido de la respuesta o establecer
Response#chunked = true
¿Qué significa esto y cómo puedo eliminarlo? ¿Es un problema?
ruby-on-rails
ruby
webrick
Nate Bird
fuente
fuente
rails s thin
; Ta-da! No más advertencias.Respuestas:
Hice la misma pregunta a uno de los miembros de Rails-Core:
https://twitter.com/luislavena/status/108998968859566080
Y la respuesta:
https://twitter.com/tenderlove/status/108999110136303617
fuente
gem 'thin'
a su gemfile, inicie su servidor usandorails server thin
). (Ups, acabo de notar que @Scott Lowe ya dijo esto arriba).El siguiente parche resolvió el problema en mi caso; No más advertencias para mí.
204_304_keep_alive.patch
Simplemente edite el archivo httpresponse.rb en la línea 205 como se muestra en el enlace de arriba; de hecho, el enlace muestra una corrección hecha a un lanzamiento futuro de Ruby.
Estoy usando rails 3.2.0 en ruby 1.9.3-p0 instalado a través de RVM como un solo usuario. Entonces la ubicación en mi caso es:
La ubicación del archivo que se va a modificar varía según el tipo de instalación, RVM o no, o incluso multiusuario o usuario único, por lo que solo estoy dando la última parte:
Espero que esto pueda ser útil para alguien.
EDITAR: Este es el enlace al commit que alteró la línea en cuestión en la rama del tronco del proyecto ruby.
fuente
Simplemente agregar explícitamente la Gema al Gemfile me eliminó los mensajes de advertencia:
fuente
También puede usar Thin en lugar del Webrick predeterminado. Agregue esto a
Gemfile
gem 'thin'
luego
rails s thin
usará thin, y la advertencia desaparecerá.fuente
thin
endevelopment
grupo. Parece que Rails 4 lo recoge automáticamente cuando se ejecutarails s
Si está utilizando .rvm, haga esto para solucionarlo ...
Como mencionó João Soares , todos los créditos a él, esto es lo que puede hacer si no quiere deshacerse de esta advertencia sobre el desarrollo.
Use su editor favorito para abrir este archivo:
Vaya a la línea que contiene esto (para mí fue realmente la línea 206):
Cámbielo, tomado de este parche , a esto:
Guarde el archivo y finalmente reinicie su servidor rails
fuente
line 107
para miEste problema se ha solucionado en la rama troncal de Ruby con este commit a webrick.
Puede editar este archivo webrick en particular de manera similar en su configuración. La ubicación aproximada se puede encontrar por:
Para editar realmente el archivo:
(O en lugar de nano, use su editor favorito).
fuente
nano `ruby -e"print %x{gem which webrick}.chomp %Q{.rb\n}"`/httpresponse.rb
.Versión de JRuby: si está utilizando .rvm, haga esto para solucionarlo ...
Como lo mencionaron João Soares y Kjellski , esto es lo que puede hacer si desea deshacerse de esta advertencia sobre el desarrollo y está utilizando JRuby.
Use su editor favorito para abrir este archivo:
Vaya a la línea que contiene esto (para mí era la línea 205):
Cámbielo, tomado de este parche , a esto:
Guarde el archivo y, finalmente, reinicie su servidor rails.
fuente
Otra solución alternativa que elimina la línea ofensiva de webrick. Simplemente no es tan útil:
(puede que necesite
sudo
)fuente
Añadir
a su
application.rb
archivo, y la advertencia desaparecerá incluso con webrick. Esto también se configuraráContent-Length
correctamente en producción cuando se procese una respuesta json o de texto.fuente