2012-09-29 10 views
5

In IIS 7.5 Ho impostato il cacheControlMaxAge ad essere di un anno in questo modoIIS7 cacheControlMaxAge non attributo di lavoro

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

Secondo questa guida: Setting Expires and Cache-Control: max-age headers for static resources in ASP.NET

Tuttavia, lo strumento di Google Page Speed ​​è ancora dicendo che la i file non vengono memorizzati nella 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) 

Perché si dice "scadenza non specificata"?

L'intera webapp viene pubblicata su https, è un fattore?

+2

Avete ispezionato le intestazioni http per image1.png? Puoi farlo negli strumenti di sviluppo del tuo browser (F12 in Chrome/FF/IE), nella scheda di rete. Oppure puoi usare Fiddler. Tutti i browser moderni nascondono gli elementi tramite https se è impostata l'età massima. –

+0

Le intestazioni http dicono 'Cache-Control: public' ma nessuna menzione di scadenza, come si chiamerebbe l'intestazione di scadenza? –

+1

Risolto: aggiungendo gli attributi di caching a 'location path =" Content "' invece di 'location path =" Content/Images "' risolto il problema. –

risposta

3

ho risolto questo cambiando il percorso specificato da Content/Images a poco Content

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

Così è fisso, ma il cambio del percorso di non mettere in chiaro quale sia il problema in realtà.

0

Ho trovato che Google PageSpeed ​​in alcuni casi richiede un po 'di tempo per "recuperare" con le modifiche recenti apportate. Assicurati di aver eseguito un aggiornamento completo della pagina e premi il pulsante Aggiorna in PageSpeed ​​stesso. In caso contrario, l'utilizzo di Firebug su Firefox sembra sempre dare risultati accurati nella scheda di rete. Fare clic sull'icona più accanto al file ed esaminare le intestazioni di risposta.

+1

Ho riscontrato che l'aggiunta di una stringa di query non pertinente alla fine della pagina impone a Google Page Speed ​​di ottenere l'ultima versione. vale a dire http://www.example.com/testpage.htm?x=1 – EddieC