2010-01-12 41 views
5

Tôi gặp vấn đề khá rắc rối mà tôi chưa tìm được giải pháp tốt.Ngăn chặn bộ nhớ đệm của trình duyệt trên các nâng cấp ứng dụng web

Tôi cho phép lưu vào bộ nhớ cache của tất cả các tệp ứng dụng tĩnh (JS, CSS và hình ảnh) của trình duyệt để thực hiện.

Vấn đề là, khi tôi nâng cấp, người dùng vẫn sử dụng phiên bản cũ từ bộ nhớ cache, thường xuyên phá vỡ ứng dụng và yêu cầu xóa bộ nhớ cache mỗi lần để giải quyết sự cố.

Có phương pháp tiếp cận đa trình duyệt nào tốt mà vẫn cho phép lưu vào bộ đệm các tệp nhưng có thể buộc tải lại chúng khi cần không?

Cảm ơn mọi thông tin.

Trả lời

7

Nối thêm vào URL làm tham số, ví dụ: myresource.css?version=1. Tệp sẽ được máy chủ chính xác, đó là mẹo để buộc tải lại bộ nhớ cache. Bạn chỉ cần tạo trang html động.

+0

+1. Đây là những gì Net thực hiện khi bạn sử dụng tài nguyên web nhúng. – David

+0

Câu hỏi này dường như bao gồm chủ đề chi tiết hơn: http://stackoverflow.com/questions/118884/what-is-an-elegant-way-to-force-browsers-to-reload-cached-css-js- file – ewernli

+0

Xin chào. Cảm ơn bạn đã liên kết, dường như giải thích rất rõ ràng. Ngoài ra, chỉ để hiểu lời giải thích của riêng bạn, tham số phiên bản có cần được lưu giữ vĩnh viễn trong liên kết hay không và sau đó tăng lên mỗi lần nâng cấp phiên bản (như trong liên kết bạn đã đăng)? Cảm ơn bạn lần nữa. – SyBer

0

Tôi đã nghe nói về việc sử dụng số phiên bản trong tên tệp bạn muốn bạn lưu vào bộ nhớ cache của người dùng, nhưng tôi không thể nói với cách "tốt" được so sánh với các tùy chọn khác.

0

Tùy chọn tôi có thể nghĩ:

  • Giảm TTL bộ nhớ cache
  • Store thứ cache trong một cây thư mục phiên bản, ví dụ:
    • /app/1.2/css/
    • /app/1.2/js/
Các vấn đề liên quan