Tôi đang thử nghiệm ứng dụng Rails 4 của mình trong môi trường sản xuất trên máy chủ cục bộ của mình: 3000 sử dụng máy chủ Webrick tích hợp. Khi tôi chạy RAILS_ENV=production bundle exec rake assets:precompile
, nội dung được xây dựng lại ở nơi công khai và tệp kê khai được xây dựng lại, nhưng các trang vẫn đang được phân phối với tên nội dung trước đó.Làm cách nào để máy chủ Rails làm mới các tài sản biên dịch trước?
Khởi động lại máy chủ đường ray làm cho nội dung mới xuất hiện. Có một cách ít cực đoan để đạt được điều này và làm thế nào điều này sẽ hành xử khi tôi cảng này đến máy chủ sản xuất của tôi chạy Phusion hành khách. Tôi thực sự không muốn khởi động lại Apache để có được tài sản của tôi trong thiết bị.
Được bật vân tay cho tài sản được biên soạn? –
Có, các tài sản được biên dịch được lấy dấu vân tay. Cấu hình mặc định là Rails 4, ngoại trừ 'config.serve_static_assets = true' cần thiết để làm cho Webrick phân phát nội dung từ'/public', 'config.assets.digest = true' được thiết lập. Các tài sản có tên như 'application-01d7312dee865ebe9d525b15f2fbe7f0.css', đây là giá trị nằm trong tiêu đề trang. Vấn đề là phiên bản cũ vẫn đang được sử dụng sau khi phiên bản mới được xây dựng. –
Phiên bản cũ hơn có nghĩa là bạn đã thay đổi nội dung chưa? Nếu bạn không thay đổi nội dung của tài sản, phiên bản được biên dịch trước sẽ giống như phiên bản trước và nếu bạn thay đổi một chút, dấu vân tay sẽ thay đổi và ứng dụng sẽ yêu cầu phiên bản mới chỉ khi bạn đã đặt 'config. assets.digest = true'. –