Demander aux navigateurs de mettre en cache nos images (ASP.NET/IIS)
j'ai juste couru Google Page Speed application contre notre site et l'une des recommandations était de utiliser la mise en cache du navigateur. Cette extension a révélé ce qui suit:
les Ressources exploitables suivantes ont une courte durée de fraîcheur: Préciser une date d'expiration d'au moins une semaine l'avenir pour les ressources suivantes:
<
une longue liste d'images>
<
certains les fichiers javascript>
Comment prolonger la durée de "fraîcheur" de certaines images?
ASP.NET projet en cours d'exécution sur IIS7.5
3 réponses
j'ai trouvé la réponse à ma question ailleurs sur ce site. Woot! (Je ne sais pas pourquoi il n'apparaît pas quand j'ai posté, mais jamais l'esprit, je suis arrivé à la fin.)
pour les personnes intéressées, la réponse était ceci (comme posté par Gabriel McAdams):
vous faites cela dans IIS. Si vous utilisez IIS 7, vous pouvez ajouter l'en-tête dans votre web.config. C'est dans le système.le serveur web de la section.
<staticContent>
<clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
</staticContent>
cela va causer tout le contenu statique pour avoir un en-tête HTTP expires défini à l'année 2020. Contenu statique signifie Tout ce qui n'est pas servi par le ASP.NET moteur tel que des images, des dossiers de script et des feuilles de styles.
Ou relatif à l'expiration, utilisez ceci:
<staticContent>
<clientCache cacheControlMaxAge ="2.00:00:00" cacheControlMode="UseMaxAge" />
</staticContent>
cela va faire en sorte que tous les contenus statiques aient un en-tête HTTP expires défini à 2 jours.
vous devrez ajouter L'en-tête Expires à votre contenu statique incluant les images, html, js, fichiers css. Vous pouvez facilement ajouter l'en-tête expires dans votre web.config system.webServer
section à l'aide de IIS7:
<staticContent> <clientCache httpExpires="Mon, 1 May 2020 05:00:00 GMT" cacheControlMode="UseExpires" /> </staticContent>
ce que vous voulez généralement est de mettre en cache tous les actifs( css, js et images), le fichier html aura çache busting liens pour que vous puissiez toujours mettre à jour les images.
pour que cela fonctionne, les fichiers html ne peuvent pas faire partie de staticContent
. l'ajout d'un nouveau gestionnaire pour les fichiers html empêche leur mise en cache permanente.
<staticContent>
<clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
</staticContent>
<handlers>
<add
name="HtmlHandler"
path="*.html"
verb="*"
type="System.Web.Handlers"
preCondition="integratedMode"
/>
</handlers>