2012-05-18 9 views
17

Impossibile ottenere i file di immagine nella cache. Ho provato tutto ciò che ho trovato su questo sito e su altri e ancora non riesco a farli memorizzare nella cache.IIS 7.5 e immagini non in cache

impostazione di configurazione Web che ho provato

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

Ecco le intestazioni di risposta per 1 delle immagini

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 memorizza nella cache il contenuto statico per impostazione predefinita. Quando controlli le intestazioni, assicurati che i tuoi strumenti di sviluppo non abbiano l'opzione impostata per disabilitare la cache. – ajbeaven

risposta

29

Il seguente dovrebbe causare i browser di memorizzare nella cache le immagini:

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

Il blocco <caching>...</caching> è per il caching lato server, non per il cachin lato client g.

+1

Questo abilita l'intestazione della cache del client su ogni file statico (.js, .css, .jpg, ecc.)? Come posso controllare l'estensione? Grazie – Andres

+3

Abilita le intestazioni della cache per tutto il contenuto statico (abilitato in IIS) nella cartella (e sottocartelle) con un file 'web.config' con questo abilitato. Quindi se le tue immagini sono in '/ images' dovresti creare un' web.config' con quanto sopra e metterlo nelle cartelle '/ images' in modo che solo le immagini siano influenzate da questo. Non è possibile abilitarlo/disabilitarlo per estensione di file. –

+0

ciò causa l'errore 500.19, cosa devo fare? – Digerkam