Trong IIS 7.5 Tôi đã thiết lập các cacheControlMaxAge là một năm như vậyIIS7 cacheControlMaxAge thuộc tính không làm việc
<location path="Content/Images">
<system.webServer>
<staticContent>
<clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
</staticContent>
</system.webServer>
</location>
Theo hướng dẫn này: Setting Expires and Cache-Control: max-age headers for static resources in ASP.NET
Tuy nhiên, công cụ Google PageSpeed vẫn nói rằng các tệp không được lưu trong bộ nhớ cache:
The following cacheable resources have a short freshness lifetime. Specify an expiration at least one week in the future for the following resources:
* https://local.example.com/Content/Images/image1.png (expiration not specified)
(etc)
Tại sao thông báo "hết hạn không được chỉ định"?
Toàn bộ webapp được phân phát qua https, đó có phải là yếu tố không?
Bạn đã kiểm tra tiêu đề http cho image1.png chưa? Bạn có thể thực hiện việc này trong các công cụ tìm kiếm của trình duyệt (F12 trong Chrome/FF/IE), trong tab mạng. Hoặc bạn có thể sử dụng Fiddler. Tất cả các trình duyệt hiện đại đều lưu trữ các mục trên https nếu độ tuổi tối đa được đặt. –
Các tiêu đề http nói 'Cache-Control: public' nhưng không đề cập đến hết hạn, tiêu đề hết hạn sẽ được gọi là gì? –
Giải quyết: thêm thuộc tính bộ nhớ đệm vào 'location path =" Content "' thay vì 'location path =" Content/Images "' đã khắc phục được sự cố. –