2 votes

Comment modifier les en-têtes pour des types spécifiques de fichiers servis dans IIS / MVC

Je suis en train de mettre en place un correctif pour le problème causé par les problèmes de compression 02 sur 3G.

Le site web affiche une erreur JavaScript sur l'iPad / iPhone sous 3G mais pas sous WiFi

La meilleure solution semble être http://stuartroebuck.blogspot.com/2010/08/official-way-to-bypassing-data.html qui consiste essentiellement à ajouter l'en-tête Cache-Control: no-transform dans IIS, mais j'aimerais l'appliquer uniquement à des types de fichiers spécifiques. Quel est le moyen le plus simple de le faire ?

2voto

Yucel Points 756

C'est la meilleure solution pour moi d'écrire un HttpModule. J'ai écrit un exemple pour vous. Vous pouvez vérifier le type mime pour des types de fichiers spécifiques.

public class AddHeaderModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.EndRequest += OnEndRequest;
    }

    void OnEndRequest(object sender, System.EventArgs e)
    {
        if(HttpContext.Current.Response.ContentType == "image/jpeg")
            HttpContext.Current.Response.Headers.AddHeader("Cache-Control", "no-transform");
    }
}

Vous devez également l'ajouter dans le fichier web.config

<configuration>
   <system.web>
      <httpModules>
         <add name="AddHeaderModule" type="your.namespace.AddHeaderModule" />
      </httpModules>
   </system.web>
</configuration>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X