Tôi đã chạy một ứng dụng Rails 3.1 trên Heroku Cedar Stack trong một vài tháng ngay bây giờ. Tôi đang sử dụng Rack :: Deflater middleware để gzip nội dung của tôi và đạt được điều này bằng cáchXung đột Heroku giữa các nội dung gzipping và biên dịch trước các tài sản
config.middleware.insert_before ActionDispatch::Static, Rack::Deflater
trong tệp staging.rb của tôi.
Tuy nhiên, kể từ tuần trước, tôi nhận được lỗi sau khi triển khai để Heroku
Running: rake assets:precompile
rake aborted!
No such middleware to insert before: ActionDispatch::Static
Tuy nhiên, chạy cào middleware vẫn trả
use Rack::Cache
use Rack::Deflater
use ActionDispatch::Static
use Rack::Lock
Và nội dung phục vụ vẫn gzip. Tuy nhiên, tài sản không được biên soạn (được rút gọn) khi biên dịch trước thất bại. Một tay rake biên dịch trước :: asets cũng không giúp được gì.
Vì vậy, tôi giả sử ActionDispatch :: Tĩnh không có sẵn trong quá trình biên dịch trước tài sản. Vì vậy, tôi đã cố gắng để chèn Rack :: Deflater trước Rack :: Lock và bây giờ tài sản của tôi được biên soạn mà không có bất kỳ thông báo lỗi nhưng nội dung phục vụ không gzipped.
Vì vậy, tôi cần phải làm gì, cho cả gzip và biên dịch nội dung của mình? Tôi đang thiếu gì? Cảm ơn.
Điều này thật tuyệt, nhưng không phải là mát mẻ khi phân phát tệp .gz mà đường ống nội dung tạo ra. Tôi tự hỏi liệu có cách nào để làm điều đó không? – maletor
Đây là [câu hỏi liên quan] (http://stackoverflow.com/questions/12326191/any-way-to-serve-gzip-assets-from-heroku) bạn có thể thấy hữu ích. –