Depuis la mise à niveau vers Rails 3.1, je vois ce message d'avertissement dans mon journal de développement:
WARN Impossible de déterminer la longueur du contenu du corps de la réponse. Définir la longueur du contenu de la réponse ou définir
Response#chunked = true
Qu'est-ce que cela signifie et comment puis-je le supprimer? C'est un problème?
ruby-on-rails
ruby
webrick
Nate Bird
la source
la source
rails s thin
; Ta-da! Plus d'avertissements.Réponses:
Poser la même question à l'un des membres de Rails-Core:
https://twitter.com/luislavena/status/108998968859566080
Et la réponse:
https://twitter.com/tenderlove/status/108999110136303617
la source
gem 'thin'
à votre gemfile, démarrez votre serveur en utilisantrails server thin
). (oups, je viens de remarquer que @Scott Lowe l'a déjà dit ci-dessus.)Le patch suivant a résolu le problème dans mon cas; plus d'avertissement pour moi.
204_304_keep_alive.patch
Modifiez simplement le fichier httpresponse.rb à la ligne 205 comme indiqué sur le lien ci-dessus; en fait, le lien montre une correction apportée à une future version de Ruby.
J'utilise les rails 3.2.0 sur ruby 1.9.3-p0 installé via RVM en tant qu'utilisateur unique. L'emplacement dans mon cas est donc:
L'emplacement du fichier à modifier diffère selon le type d'installation, RVM ou non, ou même multi-utilisateur ou mono-utilisateur, donc je n'en donne que la dernière partie:
J'espère que cela peut être utile à quelqu'un.
EDIT: C'est le lien vers le commit qui a modifié la ligne en question dans la branche trunk du projet ruby.
la source
L'ajout explicite de la gemme au Gemfile s'est débarrassé des messages d'avertissement pour moi:
la source
Vous pouvez également utiliser Thin au lieu du Webrick par défaut. Ajoutez ceci à
Gemfile
gem 'thin'
puis
rails s thin
utilisera mince, et l'avertissement disparaîtra.la source
thin
endevelopment
groupe. Rails 4 semble le ramasser automatiquement lors de l'exécutionrails s
Si vous utilisez .rvm, procédez comme suit pour le corriger ...
Comme l'a mentionné João Soares , tous ses remerciements, c'est ce que vous pouvez faire si vous ne voulez pas vous débarrasser de cet avertissement sur le développement.
Utilisez votre éditeur préféré pour ouvrir ce fichier:
Allez à la ligne qui contient ceci (pour moi, c'était vraiment la ligne 206):
Modifiez-le, extrait de ce patch , en ceci:
Enregistrez le fichier et redémarrez éventuellement votre serveur rails
la source
line 107
pour moi.Ce problème a été corrigé dans la branche du tronc de Ruby avec ce commit sur webrick.
Vous pouvez modifier ce fichier webrick particulier de manière similaire dans votre configuration. L'emplacement approximatif peut être trouvé par:
Pour modifier réellement le fichier:
(Ou au lieu de nano, utilisez votre éditeur préféré.)
la source
nano `ruby -e"print %x{gem which webrick}.chomp %Q{.rb\n}"`/httpresponse.rb
.Version JRuby: Si vous utilisez .rvm, faites-le pour le corriger ...
Comme mentionné par João Soares et Kjellski , c'est ce que vous pouvez faire si vous voulez vous débarrasser de cet avertissement sur le développement et que vous utilisez JRuby.
Utilisez votre éditeur préféré pour ouvrir ce fichier:
Allez à la ligne qui contient ceci (pour moi, c'était la ligne 205):
Modifiez-le, extrait de ce patch , en ceci:
Enregistrez le fichier et redémarrez éventuellement votre serveur rails.
la source
Une autre solution de contournement qui supprime la ligne incriminée de webrick. Ce n'est tout simplement pas très utile:
(vous devrez peut-être
sudo
)la source
Ajouter
dans votre
application.rb
fichier, et l'avertissement disparaîtra même avec webrick. Cela sera égalementContent-Length
correctement défini en production lors du rendu d'une réponse json ou texte.la source