Imaginez la .js
sont placés dans /my-site/some/path/ui/js/myfile.js
Donc, normalement, la balise script devrait ressembler à ceci :
<script src="/my-site/some/path/ui/js/myfile.js"></script>
Maintenant, changez ça en :
<script src="/my-site/some/path/ui-1111111111/js/myfile.js"></script>
Maintenant, bien sûr, cela ne fonctionnera pas. Pour que cela fonctionne, vous devez ajouter une ou plusieurs lignes à votre fichier .htaccess
La ligne importante est : (tout le .htaccess en bas)
RewriteRule ^my-site\/(.*)\/ui\-([0-9]+)\/(.*) my-site/$1/ui/$3 [L]
Donc ce que ça fait, c'est que ça enlève en quelque sorte le 1111111111
du chemin et renvoie au chemin correct.
Donc maintenant, si tu fais des changements, tu dois juste changer le numéro. 1111111111
au nombre que vous voulez. Et quelle que soit la façon dont vous incluez vos fichiers, vous pouvez définir ce nombre via un horodatage de la dernière modification du fichier js. Le cache fonctionnera donc normalement si le nombre ne change pas. S'il change, il servira le nouveau fichier (OUI TOUJOURS) parce que le navigateur reçoit une nouvelle URL complète et croit que ce fichier est si nouveau qu'il doit aller le chercher.
Vous pouvez l'utiliser pour CSS
, favicons
et ce qui est mis en cache. Pour les CSS, il suffit d'utiliser comme suit
<link href="http://my-domain.com/my-site/some/path/ui-1492513798/css/page.css" type="text/css" rel="stylesheet">
Et ça va marcher ! Simple à mettre à jour, simple à entretenir.
Le .htaccess complet promis
Si vous n'avez pas encore de fichier .htaccess, c'est le minimum que vous devez avoir :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^my-site\/(.*)\/ui\-([0-9]+)\/(.*) my-site/$1/ui/$3 [L]
</IfModule>
3 votes
Quels navigateurs ? Vous devriez également envisager de dire au navigateur ce qu'il ne doit pas mettre en cache depuis le serveur plutôt que d'essayer de l'effacer.
1 votes
Vous pouvez également consulter ce tutoriel sur la mise en cache et son fonctionnement. mnot.net/cache_docs couvre les en-têtes de contrôle du cache et des choses comme ça
0 votes
@MechSoftware Je veux mettre en cache pour accélérer le chargement des pages, mais je veux l'effacer après la déconnexion. Il est préférable d'avoir un support de navigateur aussi bon que possible.
2 votes
@rFactor Personne n'utiliserait un navigateur qui donne aux sites web le contrôle de son cache.
0 votes
Vérifiez ce lien, il peut être utile de vider le cache du navigateur. stackoverflow.com/questions/6258552/
3 votes
Les sites Web de facto ont le contrôle du cache, car ils contrôlent les en-têtes HTTP.