2012-05-18 14 views
17

No puedo obtener los archivos de imagen en la memoria caché. Intenté todo lo que encontré en este sitio y en otros, y todavía no puedo obtenerlos en el caché.IIS 7.5 e imágenes que no se almacenan en caché

ajuste de configuración Web que he tratado

<staticContent> 
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" /> 
    </staticContent> 
    <httpProtocol allowKeepAlive="true" /> 


    <caching enabled="true" enableKernelCache="true"> 
    <profiles> 
    <add extension=".png" policy="CacheUntilChange" /> 
    <add extension=".jpg" policy="CacheForTimePeriod" duration="12:00:00" /> 
    </profiles> 
    </caching> 

Aquí es las cabeceras de respuesta de 1 de las imágenes

Key Value 
    Response HTTP/1.1 200 OK 
    Cache-Control no-cache 
    Content-Type image/png 
    Last-Modified Thu, 16 Dec 2004 18:33:28 GMT 
    Accept-Ranges bytes 
    ETag "a1ca4bc9de3c41:0" 
    Server Microsoft-IIS/7.5 
    X-Powered-By ASP.NET 
    Date Fri, 18 May 2012 13:21:21 GMT 
    Content-Length 775 
+1

IIS almacena en caché el contenido estático de forma predeterminada. Cuando revisa los encabezados, asegúrese de que sus herramientas de desarrollo no tengan la opción configurada para desactivar el caché. – ajbeaven

Respuesta

29

Lo que sigue debe causar los navegadores para almacenar en caché sus imágenes:

<staticContent> 
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" /> 
</staticContent> 
<httpProtocol> 
    <customHeaders> 
     <add name="Cache-Control" value="public" /> 
    </customHeaders> 
</httpProtocol> 

El bloque <caching>...</caching> es para el almacenamiento en caché del lado del servidor, no del lado del cliente gramo.

+1

¿Esto habilita el encabezado del caché del cliente en cada archivo estático (.js, .css, .jpg, etc.)? ¿Cómo puedo controlar la extensión? Gracias – Andres

+3

Habilita los encabezados de caché para todo el contenido estático (que está habilitado en IIS) en la carpeta (y subcarpetas) con un archivo 'web.config' con esto habilitado. Entonces, si sus imágenes están en '/ images', debe hacer un' web.config' con lo anterior y colocarlo en las carpetas '/ images' para que solo las imágenes se vean afectadas por esto. No puede habilitarlo/deshabilitarlo por extensión de archivo. –

+0

esto causa el error 500.19, ¿qué debo hacer? – Digerkam

Cuestiones relacionadas