Tôi đã nhận thấy rằng một số trình duyệt (đặc biệt là Firefox và Opera) rất nhiệt tình trong việc sử dụng các bản sao của tệp .css và .js được lưu trong bộ nhớ cache , ngay cả giữa các phiên trình duyệt. Điều này dẫn đến sự cố khi bạn cập nhật một trong những tệp này nhưng trình duyệt của người dùng vẫn tiếp tục sử dụng bản sao được lưu trong bộ nhớ cache.
Câu hỏi đặt ra là: cách thức thanh lịch nhất để buộc trình duyệt của người dùng tải lại tệp khi nó đã thay đổi?
Lý tưởng nhất, giải pháp sẽ không buộc trình duyệt tải lại tệp mỗi lần truy cập vào trang. Tôi sẽ đăng giải pháp của riêng tôi dưới dạng câu trả lời, nhưng tôi tò mò liệu có ai có giải pháp tốt hơn không và tôi sẽ để phiếu bầu của bạn quyết định.
Cập nhật:
Sau khi cho phép thảo luận ở đây một thời gian, tôi đã thấy đề xuất của John Millikin và da5id là hữu ích. Hóa ra có một thuật ngữ cho việc này: phiên bản tự động .
Tôi đã đăng một câu trả lời mới dưới đây là sự kết hợp giữa giải pháp ban đầu của tôi và đề xuất của John.
Một ý tưởng khác được đề xuất bởi SCdF sẽ là nối thêm chuỗi truy vấn không có thật vào tệp. (Một số mã Python để tự động sử dụng dấu thời gian dưới dạng chuỗi truy vấn không có thật đã được gửi bởi pi .). Tuy nhiên, có một số cuộc thảo luận về việc liệu trình duyệt có lưu trữ tệp với chuỗi truy vấn hay không. (Hãy nhớ rằng, chúng tôi muốn trình duyệt lưu tệp vào bộ đệm và sử dụng nó trong các lần truy cập trong tương lai. Chúng tôi chỉ muốn nó tải lại tệp khi nó đã thay đổi.)
Vì không rõ điều gì xảy ra với chuỗi truy vấn không có thật, tôi không chấp nhận câu trả lời đó.
iframe.contentWindow.location.reload(true)
. Xem phương pháp (4) của stackoverflow.com/a/22429796/999120 - đó là về hình ảnh, nhưng áp dụng tương tự.
ExpiresActive On ExpiresDefault "modification"
.