Sejak meningkatkan ke Rails 3.1 saya melihat pesan peringatan ini di log pengembangan saya:
PERINGATAN Tidak dapat menentukan panjang konten tubuh tanggapan. Setel panjang konten respons atau setel
Response#chunked = true
Apa artinya ini dan bagaimana saya bisa menghapusnya? Apakah ini masalah?
ruby-on-rails
ruby
webrick
Nate Bird
sumber
sumber
rails s thin
; Ta-da! Tidak ada lagi peringatan.Jawaban:
Mengajukan pertanyaan yang sama kepada salah satu anggota Rails-Core:
https://twitter.com/luislavena/status/108998968859566080
Dan jawabannya:
https://twitter.com/tenderlove/status/108999110136303617
sumber
gem 'thin'
ke gemfile Anda, mulai menggunakan server Andarails server thin
). (oops, perhatikan saja bahwa @Scott Lowe sudah mengatakan ini di atas.)Tambalan berikut memecahkan masalah dalam kasus saya; tidak ada lagi peringatan untuk saya.
204_304_keep_alive.patch
Cukup edit file httpresponse.rb di baris 205 seperti yang ditunjukkan pada tautan di atas; sebenarnya tautan tersebut menunjukkan koreksi yang dilakukan terhadap rilis Ruby di masa mendatang.
Saya menggunakan rel 3.2.0 pada ruby 1.9.3-p0 diinstal melalui RVM sebagai pengguna tunggal. Jadi lokasi dalam kasus saya adalah:
Lokasi file yang akan diubah berbeda tergantung pada jenis instalasi, RVM atau tidak, atau bahkan multi-pengguna atau pengguna tunggal, jadi saya hanya memberikan bagian terakhirnya:
Saya harap ini dapat bermanfaat bagi seseorang.
EDIT: Ini adalah tautan ke komit yang mengubah garis yang dimaksud di cabang trunk proyek ruby.
sumber
Secara eksplisit menambahkan Permata ke Gemfile menyingkirkan pesan peringatan untuk saya:
sumber
Anda juga dapat menggunakan Thin sebagai ganti Webrick default. Tambahkan ini ke
Gemfile
gem 'thin'
kemudian
rails s thin
akan menggunakan tipis, dan peringatan itu akan hilang.sumber
thin
dalamdevelopment
grup. Rails 4 tampaknya mengambilnya secara otomatis saat berjalanrails s
Jika Anda menggunakan .rvm, lakukan ini untuk memperbaikinya ...
Seperti disebutkan oleh João Soares , semua kredit kepadanya, ini adalah apa yang dapat Anda lakukan jika Anda tidak ingin menghilangkan peringatan ini pada pengembangan.
Gunakan editor favorit Anda untuk membuka file ini:
Pergi ke baris yang berisi ini (bagi saya itu benar-benar baris 206):
Ubah itu, yang diambil dari tambalan ini , menjadi ini:
Simpan file dan akhirnya restart server rails Anda
sumber
line 107
untuk saya.Masalah ini telah diperbaiki di cabang utama Ruby dengan komit ini ke webrick.
Anda dapat mengedit file webrick khusus ini dengan cara yang sama di pengaturan Anda. Perkiraan lokasi dapat ditemukan oleh:
Untuk benar-benar mengedit file:
(Atau alih-alih nano, gunakan editor favorit Anda.)
sumber
nano `ruby -e"print %x{gem which webrick}.chomp %Q{.rb\n}"`/httpresponse.rb
.Versi JRuby: Jika Anda menggunakan .rvm, lakukan ini untuk memperbaikinya ...
Seperti yang disebutkan oleh João Soares dan Kjellski , ini adalah apa yang dapat Anda lakukan jika Anda ingin menyingkirkan peringatan tentang pengembangan ini dan Anda menggunakan JRuby.
Gunakan editor favorit Anda untuk membuka file ini:
Pergi ke baris yang berisi ini (bagi saya itu baris 205):
Ubah itu, yang diambil dari tambalan ini , menjadi ini:
Simpan file dan akhirnya restart server rails Anda.
sumber
Solusi lain yang menghapus garis menyinggung dari webrick. Hanya saja tidak begitu berguna:
(Anda mungkin perlu
sudo
)sumber
Menambahkan
ke
application.rb
file Anda , dan peringatan itu akan hilang bahkan dengan webrick. Ini juga akan diaturContent-Length
dengan benar dalam produksi ketika memberikan json atau teks tanggapan.sumber