Co " WARN nie może określić zawartości-długość ciała odpowiedzi."wredny i jak się go pozbyć?
Od aktualizacji do Rails 3.1 widzę ten Komunikat ostrzegawczy w moim dzienniku rozwoju:
WARN nie mógł określić zawartości-długości ciała odpowiedzi. Set content - długość odpowiedzi lub set
Response#chunked = true
Co to oznacza i jak Mogę to usunąć? Czy to jakiś problem?
9 answers
Zadał to samo pytanie jednemu z członków Rails-Core:
Https://twitter.com/luislavena/status/108998968859566080
I odpowiedź:
Https://twitter.com/tenderlove/status/108999110136303617
Ya, it ' s fine. Trzeba to posprzątać, ale nic się nie stało.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-26 11:07:17
Poniższy patch rozwiązał problem w moim przypadku; żadnych więcej ostrzeżeń dla mnie.
Po prostu edytuj plik httpresponse.rb w linii 205, jak pokazano w linku powyżej; w rzeczywistości link pokazuje poprawkę do przyszłego wydania Rubiego.
Używam rails 3.2.0 na ruby 1.9.3-P0 zainstalowanym przez RVM jako pojedynczy użytkownik. Więc lokalizacja w moim przypadku to:
~/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpresponse.rb
Lokalizacja pliku do zmiany różni się w zależności od Typ instalacji, RVM lub nie, a nawet multi-user lub single user, więc podaję tylko ostatnią jego część:
.../ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpresponse.rb
Mam nadzieję, że to może komuś pomóc.
EDIT: to jest link do commita, który zmienił daną linię w gałęzi trunk projektu ruby.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-04 14:59:13
Po prostu dodanie klejnotu do Gemfile pozbyło się dla mnie komunikatów ostrzegawczych:
group :development do
gem 'webrick', '~> 1.3.1'
end
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-25 22:13:26
Możesz również użyć Thin zamiast domyślnego Webrick.
Dodaj to do Gemfile
gem 'thin'
Wtedy rails s thin
użyje thin, a Ostrzeżenie zniknie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-01 21:20:03
Jeśli bierzesz .rvm, zrób to, żeby 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 na rozwój.
-
Użyj swojego ulubionego edytora, aby otworzyć ten plik:
~/.rvm/rubies/<ruby-version>/lib/ruby/1.9.1/webrick/httpresponse.rb
-
Przejdź do linii, która zawiera to (dla mnie była to naprawdę linia 206):
if chunked? || @header['content-length']
-
Zmień to, zaczerpnięte z tego patcha, na to:
if chunked? || @header['content-length'] || @status == 304 || @status == 204
-
Zapisz plik i ewentualnie zrestartuj serwer rails
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-19 15:51:38
Ten problem został naprawiony w gałęzi pnia Rubiego za pomocą tego commit do webrick.
Możesz edytować ten konkretny plik webrick podobnie w konfiguracji. Przybliżoną lokalizację można znaleźć poprzez:
gem which webrick
Aby edytować plik:
nano \`ruby -e"print %x{gem which webrick}.chomp %Q{.rb\n}"\`/httpresponse.rb
(lub zamiast nano użyj swojego ulubionego edytora.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-17 18:05:03
Wersja JRuby: jeśli używasz .rvm, zrób to, żeby to naprawić...
Jak wspomnieli João Soares i Kjellski, to jest to, co możesz zrobić, jeśli chcesz pozbyć się tego ostrzeżenia na temat rozwoju i używasz JRuby.
-
Użyj swojego ulubionego edytora, aby otworzyć ten plik:
~/.rvm/rubies/jruby-<version>/lib/ruby/<1.8 or 1.9>/webrick/httpresponse.rb
-
Przejdź do linii, która zawiera to (dla mnie była to linia 205):
if chunked? || @header['content-length']
-
Zmień go, pobrany z ten patch, na to:
if chunked? || @header['content-length'] || @status == 304 || @status == 204
Zapisz plik i ponownie uruchom serwer rails.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-19 14:10:47
Inne obejście, które usuwa linię obrażeń z webrick. To po prostu nie jest takie przydatne:
cd `which ruby`/../../lib/ruby/1.9.1/webrick/ && sed -i '.bak' -e'/logger.warn/d' httpresponse.rb
(może być konieczne sudo
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-20 00:11:55
Dodaj
config.middleware.use Rack::ContentLength
Do Twojego pliku application.rb
, A Ostrzeżenie zniknie nawet z webrickiem. Spowoduje to również prawidłowe ustawienie Content-Length
w produkcji podczas renderowania odpowiedzi json lub text.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-10 07:33:08