J'utilise déjà la mise en cache de sortie dans mon application ASP.NET MVC.
Vitesse de la page me dit de spécifier l'expiration du cache HTTP pour les CSS et les images dans l'en-tête de réponse.
Je sais que l'objet Response contient certaines propriétés qui contrôlent l'expiration du cache. Je sais que ces propriétés peuvent être utilisées pour contrôler la mise en cache HTTP pour la réponse que je suis servant à partir de mon code:
Response.Expires
Response.ExpiresAbsolute
Response.CacheControl
ou bien
Response.AddHeader("Expires", "Thu, 01 Dec 1994 16:00:00 GMT");
La question est comment définir l'en-tête Expires pour les ressources qui sont servies automatiquement, par exemple images, css et autres?
Je l'ai trouvé:
J'ai besoin de spécifier le cache client pour le contenu statique (dans web.config).
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlCustom="public"
cacheControlMaxAge="12:00:00" cacheControlMode="UseMaxAge" />
</staticContent>
</system.webServer>
</configuration>
de http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache
Si vous voulez le faire à partir du code d'une ressource que vous renvoyez (c'est-à-dire pas d'un fichier statique servi par IIS), il vaut mieux utiliser Response.Cache
:
Response.Cache.SetExpires(DateTime.Now.AddYears(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
Je sais que ce n'est pas exactement ce que vous demandez, mais j'ai trouvé cette question via Google et je pense que d'autres pourraient aimer cette réponse car elle est liée aux API que vous montrez dans le texte de la question d'origine.
Regardez mini livraison de contenu statique projet. :)