Pourquoi n'est pas mon javascript & css de mise en cache?
Il apparaît que javascript et css ne sont pas de mise en cache ... mais les images sont la mise en cache.
Je suis à l'aide de Firebug et lorsque j'actualise la page, je remarque que dans Firebug beaucoup de 200 réponses HTTP pour js/css, mais je suis la réception de 304 HTTP codes (contenu non modifié) pour l'ensemble de mes images. Il semble donc que mon JS et CSS ne sont pas de mise en cache.
Aussi, lors de l'utilisation de YSlow pour aider à déterminer le problème avec mon JS/CSS contenu en cache pas, il m'informe que:
Il y a 4 composants avec mal configuré ETags
Énumérés ci-dessous est mon .fichier htaccess
Options -Indexes
Options +FollowSymLinks
# Enable ETag
FileETag MTime Size
# Set expiration header
ExpiresActive on
ExpiresDefault "access plus 1 week"
# Compress some text file types
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml application/x-javascript text/javascript application/javascript application/json
# Deactivate compression for buggy browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Set header information for proxies
Header append Vary User-Agent
Aucune idée de ce qui ne va pas avec mon .htaccess fichier d'accès à l'empêcher de mise en cache de mon CSS ou JavaScript?
J'ai enlevé 2 de la question des marques de
Dupliquer: stackoverflow.com/questions/841091/...
J'ai fermé l'autre topic. Cette rubrique est le live de la question maintenant.
OriginalL'auteur | 2009-05-08
Vous devez vous connecter pour publier un commentaire.
S'il vous plaît, considérez désactivation l'ETag!
Considérer les paramètres suivants:
Les deux premières règles de désactiver l'ETag complètement, de sorte que le navigateur est un peu forcé à écouter l'entête Cache-Control. La dernière règle indique au navigateur de mettre en cache le fichier 2678400 secondes, ou 1 mois. Modifier les paramètres de ce qui vous convient le plus. Et d'appliquer cette configuration de votre dir qui contient les fichiers statiques (par exemple, en plaçant un .fichier htaccess dans ce dir)
Facultatif, si votre utilisation de plusieurs serveurs pour servir du contenu statique, et/ou n'êtes pas sûr au sujet de la dernière modification de ces serveurs, rapport, pensez à utiliser:
Il indique à Apache de ne pas servir tout de Dernière modification des en-têtes, afin que les navigateurs ne peuvent écouter les Cache-Control " max-age d'en-tête.
Ces paramètres sont utilisés par moi-même sur beaucoup de hightraffic sites web, et la désactivation de l'ETag et de Dernière modification des en-têtes sûr contribué à générer du trafic vers le bas pour un cinquième de ce qu'il utilisé pour être. En particulier Internet Explorer est très sensible à ces paramètres.
Être averti: la Désactivation de la Dernière modification va arrêter les navigateurs de demander 304 Contenu n'est Pas Modifié les demandes. Dans mon expérience, c'est positif, parce que le serveur web a moins de demandes à traiter, et les navigateurs s'appuyer sur le Cache-Contrôle des paramètres de vous servir. Mais il peut ou peut ne pas vous convenir. Certains navigateurs vous essayez de valider les actifs de toutes les quelques minutes, si vous servez un "Last-Modified" en-tête, et c'est pourquoi je voudrais des conseils pour désactiver l'utilisation de complètement.
Oh, et si vous n'êtes pas sûr au sujet de votre mise en cache; utilisation http://www.redbot.org/ pour tester vos biens, il vous raconte rapidement ce que vos en-têtes de dire à un navigateur, et comment interpréter les différentes cache-paramètres de contrôle que vous utilisez.
OriginalL'auteur Andries Louw Wolthuizen
YSlow rapports mal configuré etags s'ils n'adhèrent pas à un certain modèle. Puisque vous êtes à la compression des css et les js, les etags sont de sortie à quelque chose comme ceci:
Voir l'-gzip, à la fin? Il est mis en place par l'apache (version 2 uniquement). C'est ce qui est à l'origine de la "erreur". YSlow s'attend à voir quelque chose comme ceci:
Bascially, vous ne pouvez pas fixer ce parce que ce n'est pas rompu. Afin de ne pas devenir fou à essayer d'obtenir un score parfait si vous ne savez pas ce que vous faites. Même que yahoo page d'accueil obtient seulement une 90.
Ne devrait-elle pas être
Etag "1e10-4889909861a80-gzip"
- apparaît comme apache bug pour moi...OriginalL'auteur jspash
Ce YSlow message d'erreur est extrêmement trompeur!
YSlow est fait se plaindre que vous êtes à l'aide de ETags à tous!
YSlow s'exécute dans votre navigateur--il n'a aucun moyen de savoir si les ETags sont configurés correctement ou pas. En règle générale, c'est à dire que vous ne devriez pas utiliser les ETags parce que vous êtes plus susceptibles d'avoir mal que de bien configuré dans un environnement multi-serveur. (Et YSlow est destinée aux utilisateurs avec de grandes multi-sites web de serveur.)
Bien sûr, si vous êtes sur un seul serveur configuration, ou si vous êtes sur un serveur distribué installation, mais que vous savez ce que vous faites, alors ETags sont juste très bien. Mais YSlow a aucun moyen de le savoir.
Il y a beaucoup de discussion de ce dans les commentaires de la description de l'erreur la page que vous devriez vérifier: http://developer.yahoo.net/blog/archives/2007/07/high_performanc_11.html
Aussi j'ai trouvé cette réponse sur ServerFault qui rappelle le point: https://serverfault.com/questions/55919/yslow-says-etags-are-misconfigured-how-to-configure-etags-properly-on-iis7
OriginalL'auteur Kip
J'ai vécu le même problème que vous.
Retrait de l'etag travail.
Ajoutez la ligne suivante dans le fichier de config:
FileETag none
OriginalL'auteur
Oui, c'est correct et bien connu de comportement (peut-être pas vraiment nécessaire).
Lire http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html sur ETag.
Probablement vous voulez, il suffit de désactiver l'ETag sur le serveur.
Edit: Aussi, l'utilisation LiveHTTPHeaders addon pour comprendre, ce que votre navigateur ne. Il fonctionne mieux que FireBug pour cette tâche.
Après un examen plus approfondi, il apparaît que javascript et css ne sont pas de mise en cache ... mais les images sont la mise en cache.
Je le remarque lors de l'utilisation du LiveHTTPHeaders add-on, grâce stepancheg. Aucune idée pourquoi le CSS et le JS ne sont pas de mise en cache?
Afficher les en-têtes du serveur envoie première fois que vous demandez .js.
aucune idée pourquoi mes fichiers JS et CSS ne sont pas mis en cache?
OriginalL'auteur stepancheg
Salut j'ai eu le même problème.
Mais il suffit de le mettre dans FileETag none ne fonctionne pas
La façon dont je l'ai corrigé (et je ne sais pas si cela est correct, mais il fonctionne) a été j'ai mis le
FileETag none
au fond de mon fichier htaccess.
Puis ySlow était heureux.
OriginalL'auteur Ben