Vấn đề tóm lại là ở chế độ phát triển chúng ta sẽ thực hiện thay đổi đối với tệp CSS hoặc JS nhưng sẽ luôn nhận được các phiên bản cũ của các tệp này. Không có gì tôi đã làm có hiệu lực. Tôi đã kiểm tra cấu hình hàng chục lần và thử mọi kết hợp các giá trị cấu hình nhưng luôn giữ được kết quả tương tự: các tập tin cũ/lưu trữ. Tôi đã thực sự chạy trong chế độ sản xuất và khởi động lại máy chủ sau mỗi thay đổi để kiểm tra.Rails 3.1.1 đường dẫn tài sản Heroku caching gotcha
Tôi đã dành cả ngày rách tóc của mình trong vấn đề này, xem hàng tá câu hỏi về lưu lượng truy cập trên đường ống nội dung nhưng không bao giờ tìm thấy câu hỏi giải quyết.
Chúng tôi sử dụng Heroku và biên dịch trước tài sản của chúng tôi bởi vì Heroku không biên dịch trước cho chúng tôi (chúng tôi cũng sử dụng sự suy nghĩ rõ ràng là nguyên nhân gây ra sự thất bại trước heroku). Vì vậy, để đẩy tài sản biên dịch của chúng tôi lên đến Heroku, chúng ta phải kiểm tra chúng trong git.
Đây là vấn đề.
Khi chúng tôi nâng cấp lên Đường ray 3.1.1 phần biên dịch tài sản tạo ra các tệp có và không có mã băm MD5 trong tên. Tôi không nghĩ nhiều về điều này và đã đi trước và kiểm tra tất cả các tập tin này để tôi có thể đẩy tới Heroku. Đôi khi sau, tôi nhận thấy sự cố với kết quả được lưu trong bộ nhớ cache trong chế độ phát triển. Các tài sản được biên dịch trước và được kiểm tra mà không có băm MD5 được phân phát từ/public/asset dưới dạng tệp tĩnh ngăn chúng tôi thấy bất kỳ thay đổi nào chúng tôi đã thực hiện trong/app/asset.
Sau khi cuối cùng nhận ra điều này tôi chạy git rm/public/assets và mọi thứ hoạt động trở lại. Vì vậy, takeaway là: Hãy cẩn thận kiểm tra tài sản vào git!
Để biến câu hỏi này thành câu hỏi: làm cách nào để người khác thực hiện việc này? Tôi có thiếu một cái gì đó hiển nhiên? Điều tôi thực sự thích là cho Heroku biên dịch trước tài sản của tôi cho tôi, nhưng nó không thành công với lỗi kết nối db mà tôi thu thập được là do nghĩ ra. Tôi đã hy vọng Rails 3.1.1 đã sửa lỗi này nhưng không.
Dty, tôi đã thử cấu hình chính xác này trước khi đăng câu hỏi này nhưng nó không hoạt động cho tôi vào thời điểm đó. Tuy nhiên, tôi chỉ thử lại lần nữa, lần này với Devise 1.4.9 và lo và nhìn nó hoạt động! Cảm ơn đề nghị đã khiến tôi thử lại lần nữa. –
@ JeffCutler-Stamm vui mừng vì nó đã hoạt động! Tôi cũng đang lưu trữ một ứng dụng đường ray 3.1.1 trên heroku nhưng chưa thêm ý tưởng nào (nhưng sẽ sớm) – Dty
Tôi sẽ lưu ý rằng bạn thêm ứng dụng đó vào config/application.rb –