2012-09-29 31 views
5

de trabajo En IIS 7.5 yo he dado la cacheControlMaxAge a ser de un año al igual queIIS7 cacheControlMaxAge no atribuye

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

De acuerdo con esta guía: Setting Expires and Cache-Control: max-age headers for static resources in ASP.NET

Sin embargo, la herramienta de Google Page Speed ​​se sigue diciendo que la los archivos no están en caché:

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) 

¿Por qué dice "caducidad no especificada"?

Toda la aplicación web se sirve en https, ¿eso es un factor?

+2

¿Ha inspeccionado los encabezados http para image1.png? Puede hacerlo en las herramientas de desarrollo de su navegador (F12 en Chrome/FF/IE), debajo de la pestaña de red. O puedes usar Fiddler. Todos los navegadores modernos almacenan en caché los elementos sobre https si se establece la edad máxima. –

+0

Los encabezados http dicen 'Cache-Control: public' pero no se menciona el vencimiento, ¿cómo se llamaría el encabezado de expiración? –

+1

Resuelto: agregar los atributos de almacenamiento en caché a 'location path =" Content "' en lugar de 'location path =" Content/Images "' solucionó el problema. –

Respuesta

3

He resuelto esto cambiando la ruta especificada de Content/Images sólo Content

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

Por lo tanto, es fijo, pero el cambio de la ruta no significa que sea claro lo que realmente era el problema.

0

He encontrado que Google PageSpeed ​​en algunos casos toma un poco de tiempo para "ponerse al día" con los cambios recientes que ha realizado. Asegúrese de haber realizado una actualización completa de la página y de presionar el botón Actualizar en PageSpeed. En su defecto, el uso de Firebug en Firefox siempre parece dar resultados precisos en la pestaña de red. Haga clic en el ícono más al lado del archivo y examine los encabezados de respuesta.

+1

He encontrado que agregar una cadena de consulta irrelevante al final de la página obliga a Google PageSpeed ​​a obtener la última versión. es decir, http://www.example.com/testpage.htm?x=1 – EddieC