en-tête d'expiration sur les fichiers javascript ne fonctionne pas
Je ne peux pas obtenir l'expiration d'en-tête sur JS fichiers pour fonctionner correctement.. Il fonctionne très bien par exemple pour les fichiers CSS!?
Quelqu'un pourrait-il me dire ce que je fais de mal? 🙁
htaccess
ExpiresActive on
ExpiresDefault A0
ExpiresByType image/gif A29030400
ExpiresByType image/jpeg A29030400
ExpiresByType image/png A29030400
ExpiresByType text/css A29030400
ExpiresByType text/javascript A29030400
ExpiresByType application/x-javascript A29030400
l'en-tête de fichier CSS
Cache-Control max-age=29030400
Connection Keep-Alive
Date Sun, 14 Oct 2012 12:06:45 GMT
Etag "be-4cbcf2ad48b40"
Expires Sun, 15 Sep 2013 12:06:45 GMT
Keep-Alive timeout=5, max=97
Server Apache/2.4.2 (Win64) PHP/5.4.3
l'en-tête de fichier JS
Cache-Control max-age=0
Connection Keep-Alive
Date Sun, 14 Oct 2012 12:06:45 GMT
Etag "1ad-4cc00d069f493"
Expires Sun, 14 Oct 2012 12:06:45 GMT
Keep-Alive timeout=5, max=99
Server Apache/2.4.2 (Win64) PHP/5.4.3
- Comme un test, ce sont les valeurs dans le fichier htaccess ceux réellement affichée dans l'en-tête pour le CSS? Par exemple: si vous modifiez le A29030400 à autre chose, voyez-vous que reflété dans les CSS en-tête? Aussi, comme un autre test, ce qui se passe si vous essayez de formater le htaccess d'une manière différente:
... ExpiresByType text/css A29030400 <filesMatch "\.(js)$"> ExpiresDefault A29030400 </filesMatch>
? - ajouter une réponse.. le reg exp solution avec filesMatch fonctionne! 😀
- Content que ça a aidé, réponse ajouté.
Vous devez vous connecter pour publier un commentaire.
Essayer l'enchaînement d'un
ExpiresDefault
dans un<filesMatch
balise au lieu d'utiliserExpiresByType
:(ne peux pas commenter pour l'instant...)
Je exécuter l'un des paramètres suivants, et cela fonctionne.
Devrait fonctionner
Cheers
Robin
Vous devrez peut-être activer l'Expiration de module à partir de l'intérieur de votre Apache configuration de l'hôte.
Dans mon cas, j'ai ajouté
juste avant la première
ExpiresByType
directive et il a commencé à travailler immédiatement (après un Apache reload).Je ne suis pas sûr de savoir pourquoi cela doit être explicitement activé. Sur d'autres serveurs il l'habitude de travailler dès que j'ai activé le mod avec
a2enmod
(peut-être avec Apache 2.2, mais je ne trouve pas un schéma clair)Une vieille question, mais voici ce que j'ai appris:
Appuyez sur F12 dans votre navigateur (j'utilise Chrome) et aller à la "Réseau" et l'onglet rechercher le code javascript qui n'est pas mise en cache. Recherchez les informations d'en-tête là (par l'intermédiaire d'un "en-Têtes" onglet, par exemple) et regardez le "content-type" dans l'en-tête de réponse des informations.
Dans mon cas c'était "application/javascript", je n'en avais pas définies précisément dans mon
.htaccess
. Une fois, j'ai ajouté cette ligne:Javascript a été mise en cache comme prévu.