J'essaye de faire quelque chose que je pensais être assez simple. Demandez à IIS 7 d'indiquer aux clients qu'ils peuvent mettre en cache toutes les images de mon site pendant un certain temps, disons 24 heures.
J'ai essayé l'étape 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 toujours des demandes allant au serveur avec des 304 retournés.
Quelqu'un a-t-il un moyen de faire cela? J'ai un site graphiquement intensif et mes utilisateurs sont martelés (mon serveur aussi) chaque fois qu'ils demandent une page. Curieusement, les images semblent avoir "Cache-Control private, max-age = 3600" apparaissant dans Firebug mais le navigateur les demande toujours lorsque j'appuie sur F5.
Cache-Control
-max-age
têtes ( ) pour différents types mime ou extensions de fichiers?Ce n'est pas vrai Jeff.
Vous devez simplement sélectionner un dossier dans votre IIS 7 Manager UI (par exemple Images ou événement le dossier Application Web par défaut) puis cliquer sur "En-têtes de réponse HTTP". Ensuite, vous devez cliquer sur "Définir l'en-tête commun .." dans le volet de droite et sélectionner "Expirer le contenu Web". Là, vous pouvez facilement configurer un âge maximum de 24 heures en choisissant «Après:», en entrant «24» dans la zone de texte et en choisissant «Heures» dans la zone de liste déroulante.
Votre premier paragraphe concernant l'entrée web.config est juste. J'ajouterais l'attribut cacheControlCustom pour définir l'en-tête de contrôle du cache sur "public" ou tout ce qui est nécessaire dans ce cas.
Vous pouvez, bien sûr, réaliser la même chose en fournissant des entrées (ou fichiers) web.config selon vos besoins.
Edit: supprimé une phrase déroutante :)
la source
Cache-Control
-max-age
têtes ( ) pour différents types mime ou extensions de fichiers?Je l'utilise
pour mettre en cache le contenu statique pendant 500 jours avec l'en-tête de contrôle du cache public.
la source
L'actualisation F5 a la sémantique «veuillez recharger le HTML actuel ET ses dépendances directes». Par conséquent, vous devriez vous attendre à voir toutes les ressources imgs, css et js directement référencées par le HTML également en cours de récupération. Bien sûr, un 304 est une réponse acceptable à cela, mais l'actualisation F5 implique que le navigateur fera la demande plutôt que de s'appuyer sur un nouveau contenu de cache.
Au lieu de cela, essayez simplement de naviguer ailleurs, puis de revenir en arrière.
Vous pouvez forcer l'actualisation, au-delà d'un 304, en maintenant ctrl tout en appuyant sur f5 dans la plupart des navigateurs.
la source
Pour mettre en cache le contenu statique pendant 365 jours avec l'en-tête de contrôle du cache public , IIS peut être configuré avec les éléments suivants
Cela se traduira par un en-tête comme celui-ci:
Notez que max-age est un delta en secondes, exprimé par un entier positif de 32 bits comme indiqué dans les sections 14.9.3 et 14.9.4 de la RFC 2616 . Cela représente une valeur maximale de 2 ^ 31 ou 2 147 483 648 secondes (sur 68 ans). Cependant, pour mieux assurer 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 également utiliser ces directives sur le web.config de votre site pour tout le contenu statique. Vous pouvez également l'utiliser uniquement pour le contenu dans un emplacement spécifique (sur l'exemple, cache public de 30 jours pour le contenu du dossier "cdn"):
la source
il existe un moyen simple: 1. en utilisant le web.config du site Web 2. dans la section "staticContent" supprimez une extension de fichier spécifique et ajoutez mimeMap 3. ajoutez "clientCache"
la source