2012-05-18 13 views
17

Ich kann die Bilddateien nicht im Cache speichern. Ich habe alles versucht, was ich auf dieser Seite und anderen gefunden habe und kann sie immer noch nicht cachen.IIS 7.5 und Bilder werden nicht zwischengespeichert

Web-Konfigurationseinstellung, die ich

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

Hier versucht haben, ist die Antwort-Header für 1 der Bilder

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 speichert statischen Inhalt standardmäßig. Wenn Sie die Header überprüfen, stellen Sie sicher, dass Ihre Dev Tools nicht die Option zum Deaktivieren des Caches haben. – ajbeaven

Antwort

29

Folgendes sollte die Browser dazu führen, dass Ihre Bilder Cache:

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

Der Block <caching>...</caching> dient zum serverseitigen Caching, nicht zum clientseitigen Cachin G.

+1

Ermöglicht dies Client-Cache-Header für jede statische Datei (.js, .css, .jpg usw.)? Wie kann ich die Erweiterung steuern? Danke – Andres

+3

Es aktiviert die Cache-Header für alle statischen Inhalt (der in IIS aktiviert ist) im Ordner (und Unterordner) mit einer Datei "web.config" mit dieser aktiviert. Wenn Sie also Ihre Bilder in '/ images' haben, sollten Sie eine' web.config' mit den obigen Einstellungen erstellen und diese in die Ordner '/ images' legen, so dass nur die Bilder davon betroffen sind. Sie können es nicht pro Dateierweiterung aktivieren/deaktivieren. –

+0

dies verursacht 500.19 Fehler, was soll ich tun? – Digerkam