Saya memiliki aplikasi Rails yang saya coba uji di lingkungan produksi. Saya berlari RAILS_ENV=production rake assets:precompile
yang menghasilkan semua aset saya di / publik / aset. Masalahnya adalah ketika saya memulai aplikasi RAILS_ENV=production rails s thin
saya dengan:
ActionController::RoutingError (No route matches [GET] "/assets/application-eff78fd67423795a7be3aa21512f0bd2.css"):
File ini ada meskipun di /public/assets/application-eff78fd67423795a7be3aa21512f0bd2.css
.
Ada pemikiran mengapa saya mendapatkan ini RoutingError
?
sumber
thin
pada mesin pengembangan saya. Saya mengkompilasi aset tetapiapplication.css
kosong dan log server memberikan kesalahan OP.config.serve_static_files
.config.serve_static_assets
sudah usang dan akan dihapus dalam Rails 5.Menambah apa yang dikatakan Ryan di atas, panduan jalur pipa aset Rails menjelaskan cara mengatur Apache atau nginx untuk melayani aset statis untuk Anda.
http://guides.rubyonrails.org/asset_pipeline.html
Anda benar-benar harus mengatur nginx atau Apache untuk melayani aset statis, karena mereka jauh lebih baik dioptimalkan untuk tugas ini daripada mongrel / thin / unicorn.
sumber
Baru saja memecahkan masalah yang sama. Dalam kasus saya, jawaban Ryan tidak membantu. Bratsche menunjuk ke Rails Guides, sayangnya ini tidak berhasil untukku juga. Namun sumber daya sangat membantu. Jadi saya mengambil konfigurasi Nginx dari sana dan menambahkan direktif root , menunjuk ke direktori publik. Tanpa ini tidak akan berhasil.
Mulai ulang nginx, dan hanya itu.
sumber
Memang Anda tidak perlu mengubah konfigurasi default apa pun. Anda baru mengkompilasi ulang file aset lagi .
menghapus publik / aset
kompilasi aset
sumber
Rails 4.2 telah menambahkan / mengubah baris ini di file config / environment / staging.rb dan production.rb Anda:
Jika RAILS_SERVE_STATIC_FILES tidak disetel, dan Anda adalah aset layanan dari server Rails Anda (seperti dengan Unicorn), maka defaultnya adalah "false", dan RoutingError akan terjadi.
Ini adalah perbaikan yang mudah:
sumber
Di rel 5,
config.serve_static_files
opsi telah berubah, jadi sekarang Anda harus memilikinyauntuk melayani aset secara lokal.
sumber
coba kode di bawah ini:
config / environment / production.rb
lalu jalankan perintah:
kemudian dorong semua file kompilasi dan manifes file ke server.
sumber
Saya menggunakan mina + puma + nginx untuk menggunakan aplikasi Rails 5 saya, saya dapat
periksa config / environment / production.rb
NGINX sudah menangani ini , konfigurasikan dengan benar
semuanya akan bekerja dengan baik.
sumber
Jika seseorang datang ke sini dengan kesalahan yang sama di lingkungan pengujian seperti yang saya lakukan, inilah yang membantu saya:
kemudian:
untuk menemukan
spring server
proses dan PID-nya, lalu bunuh melalui:sumber