Od czasu aktualizacji do wersji Rails 3.1 w moim dzienniku programowania pojawia się komunikat ostrzegawczy:
OSTRZEŻENIE Nie można określić długości treści treści odpowiedzi. Ustaw długość treści odpowiedzi lub zestawu
Response#chunked = true
Co to oznacza i jak mogę go usunąć? To jest problem?
ruby-on-rails
ruby
webrick
Nate Bird
źródło
źródło
rails s thin
; Ta-da! Nigdy więcej ostrzeżeń.Odpowiedzi:
Zadałem to samo pytanie jednemu z członków Rails-Core:
https://twitter.com/luislavena/status/108998968859566080
I odpowiedź:
https://twitter.com/tenderlove/status/108999110136303617
źródło
gem 'thin'
do pliku gem, uruchom serwer za pomocąrails server thin
). (Ups, właśnie zauważyłem, że @Scott Lowe już to powiedział powyżej.)Następująca łatka rozwiązała problem w moim przypadku; nie ma już dla mnie ostrzeżeń.
204_304_keep_alive.patch
Po prostu edytuj plik httpresponse.rb w wierszu 205, jak pokazano na powyższym linku; w rzeczywistości link pokazuje poprawkę do przyszłej wersji Ruby.
Używam szyn 3.2.0 na Ruby 1.9.3-p0 zainstalowanego przez RVM jako pojedynczy użytkownik. Lokalizacja w moim przypadku to:
Lokalizacja pliku, który ma zostać zmieniony, różni się w zależności od rodzaju instalacji, RVM lub nie, a nawet wielu użytkowników lub pojedynczego użytkownika, więc podaję ostatnią jego część:
Mam nadzieję, że może to komuś pomóc.
EDYCJA: To jest link do zatwierdzenia, który zmienił daną linię w gałęzi pnia projektu ruby.
źródło
Po prostu wyraźne dodanie Gem do Gemfile pozbyło się dla mnie komunikatów ostrzegawczych:
źródło
Możesz także użyć opcji Cienki zamiast domyślnego Webrick. Dodaj to do
Gemfile
gem 'thin'
następnie
rails s thin
użyje cienkiej, a ostrzeżenie zniknie.źródło
thin
wdevelopment
grupie. Szyny 4 wydaje się wybranie go automatycznie podczas uruchamianiarails s
Jeśli używasz .rvm, zrób to, aby to naprawić ...
Jak wspomniał João Soares , wszystkie kredyty dla niego, to jest to, co możesz zrobić, jeśli nie chcesz pozbyć się tego ostrzeżenia o rozwoju.
Użyj swojego ulubionego edytora, aby otworzyć ten plik:
Przejdź do wiersza zawierającego to (dla mnie tak naprawdę była to linia 206):
Zmień to, zaczerpnięte z tej łatki , na to:
Zapisz plik i ostatecznie zrestartuj serwer Railsowy
źródło
line 107
dla mnieTen problem został rozwiązany w gałęzi pnia Ruby dzięki temu zatwierdzeniu webrick.
Możesz edytować ten konkretny plik Webrick w podobny sposób w konfiguracji. Przybliżoną lokalizację można znaleźć:
Aby faktycznie edytować plik:
(Lub zamiast nano użyj ulubionego edytora).
źródło
nano `ruby -e"print %x{gem which webrick}.chomp %Q{.rb\n}"`/httpresponse.rb
.Wersja JRuby: Jeśli używasz .rvm, zrób to, aby to naprawić ...
Jak wspomnieli João Soares i Kjellski , możesz to zrobić, jeśli chcesz pozbyć się tego ostrzeżenia podczas programowania i używasz JRuby.
Użyj swojego ulubionego edytora, aby otworzyć ten plik:
Przejdź do wiersza zawierającego to (dla mnie była to linia 205):
Zmień to, zaczerpnięte z tej łatki , na to:
Zapisz plik i ostatecznie zrestartuj serwer Railsowy.
źródło
Kolejne obejście, które usuwa obraźliwą linię z webrick. To po prostu nie jest tak przydatne:
(być może trzeba
sudo
)źródło
Dodaj
do twojego
application.rb
pliku, a ostrzeżenie zniknie nawet z Webrick. Spowoduje to równieżContent-Length
prawidłowe ustawienie podczas renderowania odpowiedzi Json lub tekstowej.źródło