Rails 3.1にアップグレードしてから、次の警告メッセージが開発ログに表示されます。
警告応答本文のコンテンツ長を特定できませんでした。応答またはセットのコンテンツ長を設定する
Response#chunked = true
これはどういう意味ですか、どうすれば削除できますか?それって問題ですか?
rails s thin
。たーだ!警告はもうありません。
Rails 3.1にアップグレードしてから、次の警告メッセージが開発ログに表示されます。
警告応答本文のコンテンツ長を特定できませんでした。応答またはセットのコンテンツ長を設定する
Response#chunked = true
これはどういう意味ですか、どうすれば削除できますか?それって問題ですか?
rails s thin
。たーだ!警告はもうありません。
回答:
Rails-Coreのメンバーの1人に同じ質問をしました:
https://twitter.com/luislavena/status/108998968859566080
そして答え:
https://twitter.com/tenderlove/status/108999110136303617
うん、大丈夫。それをきれいにする必要がありますが、何も傷つけられていません。
gem 'thin'
gemfileに追加し、を使用してサーバーを起動しますrails server thin
)。(おっと、ちょうど@Scottロウは既にこの上に述べたことに気づいた。)
次のパッチは私の場合問題を解決しました。これ以上の警告はありません。
上記のリンクに示されているように、205行目でhttpresponse.rbファイルを編集するだけです。実際、リンクはRubyの将来のリリースに対して行われた修正を示しています。
シングルユーザーとしてRVMを介してインストールされたruby 1.9.3-p0でrails 3.2.0を使用しています。だから私の場合の場所は:
~/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpresponse.rb
変更するファイルの場所は、インストールの種類、RVMかどうか、またはマルチユーザーかシングルユーザーかによっても異なるため、最後の部分だけを示します。
.../ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpresponse.rb
これが誰かに役立つことを願っています。
編集:これは、rubyプロジェクトのトランクブランチで問題の行を変更したコミットへのリンクです。
GemfileにGemを明示的に追加するだけで、警告メッセージが表示されなくなりました。
group :development do
gem 'webrick', '~> 1.3.1'
end
デフォルトのWebrickの代わりにThinを使用することもできます。これを追加Gemfile
gem 'thin'
その後rails s thin
、シンを使用し、警告が消えます。
thin
ましたdevelopment
。レール4の実行時に自動的にそれを拾っているようだrails s
.rvmを使用している場合は、これを実行して修正します...
で述べたように、ジョアン・ソアレス彼に、すべてのクレジット、これはあなたが開発にこの警告を取り除くためにwan't場合は、何ができるかです。
お気に入りのエディターを使用して、このファイルを開きます。
~/.rvm/rubies/<ruby-version>/lib/ruby/1.9.1/webrick/httpresponse.rb
これを含む行に移動します(私にとっては本当に206行目でした):
if chunked? || @header['content-length']
if chunked? || @header['content-length'] || @status == 304 || @status == 204
ファイルを保存し、最終的にRailsサーバーを再起動します
line 107
ためでした。
この問題は、Rubyのトランクブランチでwebrickへのこのコミットにより修正されました。
この特定のwebrickファイルは、セットアップで同様に編集できます。おおよその場所は、次の方法で確認できます。
gem which webrick
ファイルを実際に編集するには:
nano \`ruby -e"print %x{gem which webrick}.chomp %Q{.rb\n}"\`/httpresponse.rb
(または、nanoの代わりに、お好みのエディターを使用してください。)
nano `ruby -e"print %x{gem which webrick}.chomp %Q{.rb\n}"`/httpresponse.rb
。
JRubyバージョン:.rvmを使用している場合は、これを実行して修正します...
で述べたようにジョアン・ソアレスとKjellski、これはあなたが開発にこの警告を取り除くしたいとあなたはJRubyのを使用している場合、あなたは何ができるかです。
お気に入りのエディターを使用して、このファイルを開きます。
~/.rvm/rubies/jruby-<version>/lib/ruby/<1.8 or 1.9>/webrick/httpresponse.rb
これを含む行に移動します(私にとっては205行目でした):
if chunked? || @header['content-length']
if chunked? || @header['content-length'] || @status == 304 || @status == 204
ファイルを保存し、最終的にRailsサーバーを再起動します。
追加
config.middleware.use Rack::ContentLength
あなたのapplication.rb
ファイル、および警告がWEBrickにしても、消えます。これはContent-Length
、jsonまたはテキスト応答をレンダリングするときに、本番環境でも適切に設定されます。