2017-10-19 20 views
1

Voulait mettre en cache les fichiers css/js dans WordPress dans le navigateur autant que possible (pour un chargement plus rapide). Cependant, (atleast Chrome) ne sera pas mis en cache s'il y a une chaîne de requête apparemment. Mais mettre la version dans la chaîne de requête est très utile et d'ailleurs il y a des fichiers css dans le code WordPress et d'autres modules comme tinymce où je n'ai pas de contrôle (ils utilisent tous la chaîne de requête de version). Existe-t-il un moyen de mettre les fichiers en cache?WordPress activer le cache du navigateur des fichiers css/js tout en préservant la chaîne de requête

enter image description here

Répondre

2

Il y a beaucoup d'endroits de votre fichier peut se cache entre la source et l'utilisateur. Le navigateur est juste l'un d'entre eux.

La recommandation d'éviter les arguments de chaîne de requête est basée sur le fait que de nombreux serveurs de cache populaires ne sont pas mis en cache s'il existe une chaîne de requête. Nous parlons de serveurs qui se trouvent devant votre serveur Web. (Certains, comme Cloudflare, vous permettent de choisir comment gérer les chaînes de requête). Dans l'ensemble, les navigateurs mettent toujours en cache une ressource qui a une chaîne de requête si vous envoyez les en-têtes appropriés.

La voie commune pour obtenir le meilleur des deux mondes est la version que le nom réel:

script-3.4.2.js 

Cela vous donne sans versioning chaîne de requête et vous fait agnostique à la technologie de mise en cache.

Chrome ne cache

Si vous êtes un utilisateur de WordPress, les chances sont que vous avez un script chargé de:

https://www.example.com/wp-includes/js/wp-embed.min.js?ver=4.8.2 

Comme avec tous les scripts, tu dois obtenir sur la première charge. Mais il devrait avoir une certaine forme d'en-têtes de contrôle de cache.

cache-control:public, max-age=172800 
content-encoding:gzip 
content-type:text/javascript 
date:Thu, 19 Oct 2017 18:26:18 GMT 
etag:W/"576-543356dcbb9ba" 
expires:Sat, 21 Oct 2017 18:26:18 GMT 
last-modified:Fri, 09 Dec 2016 08:20:37 GMT 
status:200 
vary:Accept-Encoding 

Lorsque vous naviguez vers une autre page qui fait référence le script (vous ne pouvez pas tester cela en chargeant le fichier directement en tant que navigateur se comporte différemment) ... il le charge à partir du cache:

Si vous constatez qu'il ne s'agit pas d'une mise en cache, vérifiez que les en-têtes envoyés avec le fichier sont plus susceptibles d'être un problème que la chaîne de requête.

+0

Merci. Comme certains fichiers ne sont pas sous mon contrôle, changer de nom de fichier n'est pas une option pour moi. Existe-t-il un moyen de créer un cache de navigateur (atleast Chrome) même si des chaînes de requête sont présentes? N'utilisant aucun service d'hébergement, aucun CDN n'est donc moins inquiet pour les serveurs au milieu. – srvy

+0

Lancez votre onglet réseau et naviguez sur quelques pages. Je suis prêt à parier que vous verrez ces fichiers chargés à partir du cache Chrome. – Fenton

+0

oui mais pas ceux avec des chaînes de requête. Pour ceux sans je vois "à partir du cache disque" – srvy