ruby-on-rails - change - procfile rails



Was bedeutet "WARN konnte den Inhalt nicht bestimmen-Länge des Antwortkörpers." Meinen und wie kann ich es loswerden? (6)

Das explizite Hinzufügen des Gems zum Gemfile löschte die Warnmeldungen für mich:

group :development do
  gem 'webrick', '~> 1.3.1'
end

https://src-bin.com

Seit dem Upgrade auf Rails 3.1 sehe ich diese Warnmeldung in meinem Entwicklungsprotokoll:

WARN Inhaltslänge des Antworthauptteils konnte nicht bestimmt werden. Legen Sie die Inhaltslänge der Antwort fest oder setzen Sie die Response#chunked = true

Was bedeutet das und wie kann ich es entfernen? Ist es ein Problem?



Answer #2

Eine weitere Problemumgehung, die die fehlerhafte Zeile von webrick entfernt. Es ist einfach nicht so nützlich:

cd `which ruby`/../../lib/ruby/1.9.1/webrick/ && sed -i '.bak' -e'/logger.warn/d' httpresponse.rb

(Möglicherweise müssen Sie sudo )


Answer #3

Hinzufügen

config.middleware.use Rack::ContentLength

zu Ihrer application.rb Datei, und die Warnung verschwindet auch bei webrick. Dadurch wird Content-Length beim Rendern einer JSON- oder Content-Length korrekt in der Produktion festgelegt.


Answer #4

Der folgende Patch löste das Problem in meinem Fall; Keine weiteren Warnungen für mich.

204_304_keep_alive.patch

Bearbeiten Sie einfach die Datei httpresponse.rb in der Zeile 205, wie im obigen Link gezeigt. Tatsächlich zeigt der Link eine Korrektur an, die an einer zukünftigen Version von Ruby vorgenommen wurde.

Ich benutze Rails 3.2.0 auf Ruby 1.9.3-p0 installiert durch RVM als Einzelbenutzer. Also der Ort in meinem Fall ist:

~/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpresponse.rb

Der Speicherort der Datei, die geändert werden soll, hängt vom Installationstyp, RVM oder nicht, oder sogar von mehreren Benutzern oder einem einzelnen Benutzer ab, daher gebe ich nur den letzten Teil davon an:

.../ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpresponse.rb

Ich hoffe, dass dies für jemanden hilfreich sein kann.

BEARBEITEN: Dies ist der link zum Commit, der die fragliche Zeile im Stammzweig von Ruby-Projekt geändert hat.


Answer #5

JRuby-Version: Wenn Sie .rvm verwenden, tun Sie dies, um es zu beheben ...

Wie von João Soares und Kjellski erwähnt , können Sie dies tun, wenn Sie diese Warnung für die Entwicklung loswerden möchten und JRuby verwenden.

  1. Verwenden Sie Ihren Lieblings-Editor, um diese Datei zu öffnen:

    ~/.rvm/rubies/jruby-<version>/lib/ruby/<1.8 or 1.9>/webrick/httpresponse.rb
    
  2. Gehe zu der Zeile, die das enthält (für mich war es Zeile 205):

    if chunked? || @header['content-length']
    
  3. Ändere es, von 204_304_keep_alive.patch , zu diesem:

    if chunked? || @header['content-length'] || @status == 304 || @status == 204
    
  4. Speichern Sie die Datei und starten Sie schließlich Ihren Rails-Server neu.





webrick