IIS7 Cache-Control
Je suis en train de faire quelque chose qui me semblait être assez simple. Obtenir IIS 7 de dire aux clients qu'ils peuvent mettre en cache toutes les images sur mon site pour un certain laps de temps, disons que 24 heures.
J'ai essayé le pas sur http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx mais en vain. Je reçois encore des demandes d'aller sur le serveur avec 304s d'être renvoyé.
Quelqu'un aurait-il un moyen de le faire? J'ai un graphiques du site et de mes utilisateurs sont martelées (donc mon serveur) chaque fois qu'ils demande une page. Wierdly les images semblent avoir "Cache-Control private,max-age=3600" qui apparaissent dans Firebug, mais le navigateur est encore de leur demander quand j'appuie sur F5.
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez définir l'entête Cache-Control, il n'y a rien dans le IIS7 de l'INTERFACE utilisateur pour ce faire, malheureusement.
Vous pouvez toutefois déposer ce web.config à la racine du dossier ou du site où vous voulez en faire:
Qui en informera le client en cache de contenu pour 7 jours dans ce dossier et tous les sous-dossiers.
Vous pouvez également le faire en modifiant le IIS7 métabase via
appcmd.exe
, comme suit:Cache-Control
(max-age
) des en-têtes pour les différents types mime ou extensions de fichiers?Ce n'est pas vrai Jeff.
Il vous suffit de sélectionner un dossier au sein de votre Gestionnaire IIS 7 de l'INTERFACE utilisateur (par exemple, des Images ou de l'événement par Défaut le dossier de l'Application Web), puis cliquez sur "en-Têtes de Réponse HTTP". Ensuite, vous devez cliquer sur l'en-Tête Commun.." dans le volet de droite et sélectionnez l'option "Expiration de contenu Web". De là, vous pouvez facilement configurer une durée de vie maximale de 24 heures en choisissant "Après:", d'entrer dans "24" dans la zone de texte et choisissez "Heures" dans la zone de liste déroulante.
Votre premier paragraphe concernant le web.config entrée est à droite. J'ajouterais la cacheControlCustom-attribut pour définir le contrôle de cache-tête "public" ou tout ce qui est nécessaire dans ce cas.
Vous pouvez, bien sûr, d'atteindre le même en fournissant web.config entrées (ou les fichiers) en tant que de besoin.
Edit: suppression d'une source de confusion phrase 🙂
Cache-Control
(max-age
) des en-têtes pour les différents types mime ou extensions de fichiers?- Je utiliser ce
pour mettre en cache le contenu statique de 500 jours avec le public-tête cache-control.
Le F5 Actualiser a la sémantique de "s'il vous plaît recharger le courant HTML ET direct de dépendances". Donc vous attendre à voir de toute les dim, css et js de ressources directement référencé par le HTML aussi refetched. Bien sûr, un 304 est une réponse acceptable à cette mais F5 actualiser implique que le navigateur va faire la demande plutôt que de compter sur les frais de cache de contenu.
Au lieu d'essayer simplement de naviguer ailleurs et ensuite de naviguer de nouveau.
Vous pouvez forcer le rafraîchissement, passé un 304, en maintenant la touche ctrl tout en appuyant sur la touche f5 dans la plupart des navigateurs.
Pour mettre en cache le contenu statique pour 365 jours public-tête cache-control, IIS peut être configuré comme suit
Cela va se traduire par un en-tête comme ceci:
Noter que max-age est un delta en quelques secondes, d'être exprimé par un effet positif de 32 bits entier comme indiqué dans La RFC 2616 Sections 14.9.3 et 14.9.4. Cela représente une valeur maximale de 2^31 ou 2,147,483,648 secondes (plus de 68 ans). Cependant, pour mieux s'assurer de la compatibilité entre les clients et les serveurs, nous adoptons un maximum recommandé de 365 jours (un an).
Comme mentionné sur d'autres réponses, vous pouvez utiliser ces directives sur le web.config de votre site pour tous les contenus statiques. Comme alternative, vous pouvez l'utiliser seulement pour contenu dans un emplacement spécifique trop (sur l'exemple, 30 jours public de cache pour le contenu de "$ ca" dossier):
il est un moyen facile:
1. à l'aide du site web.config
2. dans "staticContent de la section" supprimer spécifique d'extension de fichier et ajouter mimeMap
3. ajouter "clientCache"