2009-07-28 3 views
0

Dans IIS7 j'essaie de définir un en-tête expirant vraiment loin pour tout le contenu qui a le nom de fichier qui contient un mot spécifique. Par exemple, je voudrais cet en-tête sur un fichier demandé de IIS7 qui estIIS7: Définir le futur lointain expire l'en-tête sur des fichiers spécifiques

*cached*.js 

Je sais qu'il est possible de définir un futur lointain expire en-têtes, mais je veux savoir s'il est possible de le régler sur fichiers spécifiques comme dans l'exemple ci-dessus. Je veux utiliser cette méthode sur une application .NET que j'essaye de servir, mais je veux la rendre plus efficace pour que certains fichiers soient mis en cache pendant très longtemps, car ils ne changent pratiquement jamais. Dans le même temps je ne veux pas être limité à le faire pour tous les fichiers dans un certain dossier ou tous les fichiers d'un certain type.

Je suis ouvert à faire cela en modifiant mon application Asp.Net pour y parvenir, ou via les paramètres IIS7.

Alors, les gars, que pensez-vous, est-il un moyen de faire cela?

Répondre

1

Un HttpModule vous permettra de le faire. Cela vous permettrait de regarder l'URL entrante puis d'ajouter les en-têtes de réponse corrects.

Edit: Ajout d'un exemple

Vous pouvez utiliser this URL pour créer un HttpModule de base. Ensuite, en cas Application_BeginRequest, je pense que ce code sera proche de ce que vous voulez:

if (context.Request.FilePath.ToLower().IndexOf("cached") != -1) 
    context.Response.Cache.SetExpires(DateTime.Now.AddYears(1)); 
+0

Connaissez-vous un endroit où je peux trouver des exemples d'écrire un HttpModule je pourrais utiliser pour commencer? – 7wp

+1

J'ai ajouté un exemple ... – David

+0

Merci, je vais essayer ça :-) – 7wp

Questions connexes