2012-09-29 24 views
5

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?

+2

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. –

+0

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ì? –

+1

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ố. –

Trả lời

3

tôi giải quyết này bằng cách thay đổi các đường dẫn cụ thể từ Content/Images chỉ Content

<location path="Content"> 
    <system.webServer> 
     <staticContent> 
     <clientCache cacheControlCustom="public" 
        cacheControlMode="UseMaxAge" 
        cacheControlMaxAge="365.00:00:00" /> 
     </staticContent> 
    </system.webServer> 
    </location> 

Vì vậy, nó là cố định, nhưng sự thay đổi của con đường không làm cho nó rõ ràng những gì các vấn đề thực sự là gì.

0

Tôi đã tìm thấy Tốc độ trang Google trong một số trường hợp mất một chút thời gian để 'bắt kịp' với những thay đổi gần đây bạn đã thực hiện. Đảm bảo bạn đã làm mới toàn bộ trang và nhấn nút làm mới trong chính Tốc độ trang. Nếu không, sử dụng Firebug trên Firefox luôn có vẻ như cung cấp kết quả chính xác trong tab net. Nhấp vào biểu tượng dấu cộng bên cạnh tệp và kiểm tra tiêu đề phản hồi.

+1

Tôi nhận thấy rằng việc thêm chuỗi truy vấn không liên quan vào cuối trang sẽ buộc Google PageSpeed ​​nhận phiên bản mới nhất. tức là http://www.example.com/testpage.htm?x=1 – EddieC

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