2011-12-05 30 views
6

Tôi không chắc mình đang làm gì sai nhưng mặc dù mọi thứ tôi đã thử, dường như tôi không thể để khách hàng lưu trữ tài nguyên tĩnh của tôi.Xác định bộ nhớ cache của khách hàng dường như bị bỏ qua

Trong web.config của tôi, tôi đã thêm các mục sau đây:

<staticContent> 
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> 
    </staticContent> 

Theo tài liệu, điều này sẽ gửi một đáp ứng tiêu đề cho trình duyệt của khách hàng để cho nó biết chúng ta muốn giữ lại nội dung tĩnh được lưu trong 30 ngày.

Nếu tôi sử dụng trình duyệt để xem khách hàng đang nhận được gì, có vẻ như bổ sung web.config của tôi bị bỏ qua hoàn toàn.

Dưới đây là những gì cáy được báo cáo:

Cache-Control: no-cache 
Date: Mon, 05 Dec 2011 14:09:44 GMT 
Expires: -1 
Pragma: no-cache 
Vary: Accept-Encoding 

tôi không có bất kỳ tiêu đề trong IIS trọng này vì vậy tôi không chắc chắn là những gì nó mà tôi đang thiếu. Mọi sự trợ giúp sẽ rất được trân trọng.

Trả lời

6

Tôi đã bẻ khóa này nhưng phải mất một lúc. Bạn đang cố gắng để buộc 304s từ máy chủ (không thay đổi). Nó khác với phiên bản IIS.

Nó đạt được tốt nhất bằng việc có tất cả các bạn nội dung tĩnh trong một thư mục (ví dụ content, do đó bạn sẽ phải /content/css/content/js etc)

Sau đó, bạn chỉ cần có để đảm bảo tất cả mọi thứ dưới thư mục mà không hết hạn cho, nói, 30 ngày.

IIS7

Dễ dàng hơn nhiều. Cách dễ nhất - thêm web.config vào thư mục nội dung được đề cập ở trên. web.config này sẽ có chỉ hết hạn chỉ thị:

<system.webServer> 
    <staticContent> 
     <clientCache 
      cacheControlMaxAge="30.00:00:00" 
      cacheControlMode="UseMaxAge" /> 
    </staticContent> 
</system.webServer> 

IIS6

Bạn sẽ cần phải thao tác metabase. Nó không phải là XML trong IIS6, hãy thực hiện theo các hướng dẫn tại đây: IIS6 ETags metabase commands

Chúng tôi đã sử dụng cả hai chế độ xem trên và đơn giản về các chương trình firebug 304 sắp tới.

+0

Trước hết, cảm ơn sự giúp đỡ của bạn. Tôi nhận được 304s như bạn chỉ ra ở trên nhưng thêm web.config trong thư mục nội dung đã không làm cho một chút của một sự khác biệt. Tôi đã thử thêm web.config mới vào thư mục/Content và kết thúc nhận được 500 lỗi (_there là một vấn đề với tài nguyên bạn đang tìm kiếm, và nó không thể được hiển thị_). Tôi cũng đã chuyển nó vào thư mục nơi tài nguyên là:/Content/css và tệp css bây giờ đã được truy xuất thành công nhưng với tiêu đề no-cache một lần nữa. – Yag

+0

Dường như điều này có thể giúp http://stackoverflow.com/questions/5385714/deploying-website-500-internal-server-error định tuyến có thể .... – penderi

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