Tôi vừa nâng cấp ứng dụng của mình trên Heroku từ Rails 3.0 lên 3.1 và tôi đang cố gắng làm cho đường ống nội dung hoạt động. Vấn đề chính là tôi có thể đọc từ Heroku đăng nhập các loại sau đây của dòng, cho mỗi tài sản:Tài sản đường ống khi cập nhật lên Rails 3.1 trên Heroku
2011-09-03T16:35:28+00:00 app[web.1]: cache: [GET /assets/border-a3c571a354b9381740db48aeebfaa63a.jpg] miss
Nếu tôi hiểu các đường ống dẫn một cách chính xác, điều này không nên "bỏ lỡ" cho mọi yêu cầu tôi thực hiện từ một trình duyệt, nhưng nó sẽ được tìm thấy trong bộ nhớ cache.
Đọc các tài liệu Heroku bạn có thể tìm thấy lời giải thích này:
Rails 3.1 provides an assets:precompile rake task to allow the compilation penalty to be paid up front rather than each time the asset is requested. If this task exists in your app we will execute it when you push new code.
Nhưng làm thế nào nên rằng "tài sản: tiền biên dịch" nhiệm vụ được? Tôi đã thử xây dựng một dự án với đường ray 3.1 từ đầu để cố gắng tìm ra, nhưng không có nhiệm vụ như vậy trong một dự án trần. Hay tôi đang thiếu một cái gì đó? Làm thế nào tôi có thể làm cho rằng các tài sản được tìm thấy trong bộ nhớ cache? Có lẽ chỉ là một vấn đề với cấu hình.
Đây là những lựa chọn của tập tin cấu hình sản xuất của tôi:
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true # If I turn this off I get a 500 error and logs say that an asset isn't compiled
application.rb của tôi có dòng này:
config.assets.enabled = true
Cảm ơn rất nhiều sự giúp đỡ của bạn!
Tôi biên dịch nội dung trực tiếp trên heroku, không gây ô nhiễm kho lưu trữ cục bộ của tôi với nội dung bị khiếu nại. Sử dụng lệnh: heroku chạy rake tài sản: biên dịch trước –