2012-02-07 15 views
5

Tôi có một ứng dụng dựa trên web bằng máy chủ web tùy chỉnh và tôi đang gặp sự cố với trình duyệt webkit không lưu vào bộ nhớ hình ảnh, biểu định kiểu và javascript.Webkit không lưu trong bộ nhớ cache khi cả hai tiêu đề tối đa và sửa đổi lần cuối đều cung cấp

Tôi đã theo dõi nó xuống một số mối quan hệ giữa Cache-Control: max-age và Last-Modified. Nếu cả hai được chỉ định thì webkit dường như bỏ qua tiêu đề tối đa và kiểm tra xem tệp đã được sửa đổi MỌI lần tài nguyên được sử dụng hay chưa. Trang web có khung nội tuyến trên trang đầu tiên và kết quả là các bảng định kiểu, v.v. được yêu cầu hai lần trong vòng một giây!

Nếu bạn xóa Sửa đổi lần cuối thì các tệp sẽ không được yêu cầu lại cho đến ngày hôm sau; tuy nhiên, yêu cầu vào ngày hôm sau sẽ không còn là yêu cầu nếu được sửa đổi kể từ khi yêu cầu, yêu cầu máy chủ gửi lại mọi thứ thay vì chỉ tiêu đề 304.

Trên IE9, Firefox 10.0 và Opera 11.61 bộ nhớ cache của trình duyệt một cách chính xác và không yêu cầu lại hình ảnh, chỉ HTML, có thuộc tính tiêu đề Cache-Control: no-cache.

Trên Chrome 16.0.912.77 m và Safari 5.1.2 (7534.52.7) một yêu cầu có điều kiện được thực hiện cho mọi hình ảnh trên mọi trang, mọi lúc. Máy chủ phản hồi với tiêu đề 304, lại chứa thuộc tính độ tuổi tối đa nhưng cả hai đều tiếp tục yêu cầu.

Một tiêu đề ví dụ HTTP tôi gửi với một phản ứng là:

HTTP/1.1 200 OK 
Date: Mon, 06 Feb 2012 15:12:12 GMT 
Cache-Control: max-age=86400 
Content-length: 708 
Content-type: image/gif 
Last-Modified: Fri, 6 Jan 2012 14:39:07 GMT 
Server: Webspring 

Có ai có bất cứ đề nghị như thế nào tôi có thể nhận được những trình duyệt này cho tất cả các tôn trọng tiêu đề bộ nhớ cache của tôi?

Tất cả các trình duyệt đang chạy trên Win7 Pro x64 và tiêu đề HTTP ở trên là đầu ra thô của Fiddler, vì vậy đó chính xác là những gì trình duyệt đang nhận.

Lưu ý: Tôi đã hỏi một câu hỏi trước đây trước khi tôi phát hiện ra đây là sự tương tác giữa các trường tiêu đề. Tôi đã xóa câu hỏi trước vì nó không còn chính xác nữa.

Cảm ơn

Mog

+0

Bạn đã bao giờ chẩn đoán nguyên nhân hoặc tìm giải pháp cho vấn đề này chưa? Chúng tôi đang thấy các yêu cầu GET có điều kiện lặp lại trên mọi hình ảnh trên Mac OS X 10.8.2 với trình duyệt dựa trên webkit (Chrome/Safari), nhưng Firefox lưu trữ chính xác. –

+0

Chúng tôi thực sự xóa thuộc tính được sửa đổi lần cuối cho Chrome và Safari để ít nhất nó cũng có một số bộ nhớ đệm. Không bao giờ tìm thấy một giải pháp tốt hơn xin lỗi. – Mog0

Trả lời

0

Tôi đã có cùng một vấn đề nhưng nó đã không WebKit rộng; Safari và Chrome ở chế độ ẩn danh hoạt động tốt. Tôi đã cố gắng vô hiệu hóa tất cả các phần mở rộng mà không có sự khác biệt nhưng thanh toán bù trừ toàn bộ bộ nhớ cache dường như đã cố định nó.

Tôi đoán là nếu bạn thêm tiêu đề Bộ nhớ Cache-Kiểm soát vào trang web của mình lần đầu tiên thì Chrome không ghi đè chính xác các tiêu đề cũ trong bộ nhớ cache của nó. Điều này đặt ra một số vấn đề khi đưa người dùng hiện có đến cài đặt bộ nhớ cache mới của bạn đúng cách.

Các vấn đề liên quan