Je ne parviens pas à mettre les fichiers d'image en mémoire cache. J'ai essayé tout ce que j'ai trouvé sur ce site et sur d'autres et je n'arrive toujours pas à les mettre en cache.
Paramètre de configuration Web que j'ai essayé
<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>
Voici les en-têtes de réponse pour l'une des images.
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
Ce qui suit devrait amener les navigateurs à mettre en cache vos images:
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>
<httpProtocol>
<customHeaders>
<add name="Cache-Control" value="public" />
</customHeaders>
</httpProtocol>
Le bloc <caching>...</caching>
est destiné à la mise en cache côté serveur, pas à la mise en cache côté client.
Si quelqu'un a besoin de configurer votre site en tant qu'audits Chrome ou GTMetrix, j'ai configuré mes environnements avec les éléments suivants (grâce à answer de Marco):
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
en utilisant 365
jours et les deux outils ont pris cette valeur comme acceptable pour une durée de cache.