2017-07-20 1 views
0

Comment puis-je mettre en cache uniquement les images, mais pas les fichiers Javascript et Css?Images de cache Asp.Net mais pas de javascripts

Existe-t-il une sorte d'en-tête pour contrôler quels types MIME mettre en cache? Ajout d'une explication supplémentaire: J'ai l'extrait suivant en place, sur mon global.asax.cs, de sorte que dans mon environnement de développement je ne cache pas les fichiers javascript (ou il faudrait que je redémarre le serveur à chaque fois pour un simple changement). Puisque les images changent rarement, je me demande s'il y a un moyen.

if (ApplicationConfiguration.IsLocal()) { 
      //do not cache content locally, to make development faster 
      Response.Cache.SetCacheability(HttpCacheability.NoCache); 
      Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1)); 
      Response.Cache.SetNoStore(); 
     } 

Merci

Répondre

0

En fin de compte se sont tournés vers une erreur de rookie's:

J'ai eu la (mauvaise) impression qu'il n'y aurait qu'une seule réponse du serveur, alors que, comme En fait, il y en avait plusieurs, un pour chaque ressource.

Ainsi, je avais juste besoin de créer une condition supplémentaire pour valider si la ressource donnée sur la réponse nécessaire ou non être mises en cache:

if (ApplicationConfiguration.IsLocal() && !ShouldCache()) { 
      //do not cache content locally, to make development faster 
      Response.Cache.SetCacheability(HttpCacheability.NoCache); 
      Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1)); 
      Response.Cache.SetNoStore(); 
     } 


private bool ShouldCache() { 
     if (Request.AppRelativeCurrentExecutionFilePath == null) { 
      return false; 
     } 

     return Request.AppRelativeCurrentExecutionFilePath.IndexOf("vendor",StringComparison.CurrentCultureIgnoreCase) !=-1 
       || Request.AppRelativeCurrentExecutionFilePath.IndexOf(".png", StringComparison.CurrentCultureIgnoreCase) != -1 
       || Request.AppRelativeCurrentExecutionFilePath.IndexOf(".jpg", StringComparison.CurrentCultureIgnoreCase) != -1; 
    } 

Dans ce scénario, j'ai gardé cache activé pour toutes les images et mes scripts "fournisseur" (thirdparty)