2012-09-29 10 views
5

W IIS 7.5 mam ustawić cacheControlMaxAge na jeden rok jak takIIS7 cacheControlMaxAge nie atrybut pracy

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

zgodnie z niniejszym przewodniku: Setting Expires and Cache-Control: max-age headers for static resources in ASP.NET

Jednak narzędzie Google PageSpeed ​​wciąż mówiąc, że pliki nie są buforowane:

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) 

Dlaczego jest napisane "nie określono terminu wygaśnięcia"?

Cały webapp jest obsługiwany przez https, czy to jest czynnik?

+2

Czy sprawdziłeś nagłówki http dla image1.png? Możesz to zrobić w narzędziach programistycznych przeglądarki (F12 w przeglądarce Chrome/FF/IE) na karcie sieci. Lub możesz użyć Skrzypka. Wszystkie współczesne przeglądarki buforują elementy za pośrednictwem protokołu HTTPS, jeśli ustawiony jest wiek maksymalny. –

+0

Nagłówki http mówią: "Cache-Control: public", ale bez wzmianki o wygaśnięciu, jaki nagłówek wygaśnięcia zostanie nazwany? –

+1

Rozwiązane: dodanie atrybutów buforowania do 'location path =" Content "' zamiast 'location path =" Content/Images "' naprawiono problem. –

Odpowiedz

3

Rozwiązałem to przez zmianę określonej ścieżki z Content/Images tylko Content

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

Więc to jest stała, ale zmienia ścieżki nie było jasne, co właściwie było problemem.

0

Zauważyłem, że Google PageSpeed ​​w niektórych przypadkach zajmuje trochę czasu, aby "nadrobić zaległości" po wprowadzeniu ostatnich zmian. Upewnij się, że wykonałeś pełne odświeżenie strony i naciśnij przycisk odświeżania w samej PageSpeed. W przeciwnym razie używanie Firebug w Firefoksie zawsze daje dokładne wyniki w zakładce net. Kliknij ikonę plusa obok pliku i sprawdź nagłówki odpowiedzi.

+1

Zauważyłem, że dodanie nieistotnego ciągu zapytania na końcu strony zmusza Google PageSpeed ​​do pobrania najnowszej wersji. np. http://www.example.com/testpage.htm?x=1 – EddieC