Comment puis-je (forcer) mes visiteurs sur mon site Web de nettoyer leur cache et d'obtenir le nouveau contenu mis à jour? Je me trouve parfois en train de lier les progrès de certains de mes projets et de les envoyer à d'autres, mais ceux-ci doivent d'abord nettoyer leur cache pour voir les modifications.
Je me demandais si je pouvais faire quelque chose que je puisse faire pour charger le nouveau contenu instantanément au lieu de le charger à partir de leur cache?
On dirait que votre site utilise mise en cache HTTP qui peut être ajusté à l'aide d'une forme de Mise en cache du navigateur ou à l'aide de chaînes de version de vos fichiers.
Vous pouvez utiliser 3 méthodes ci-dessous: Apache mod_expires , Apache FilesMatch et les chaînes de version à l'aide de PHP.
Apache mod_expires.c
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds"
ExpiresByType text/html "access plus 60 seconds"
ExpiresByType image/x-icon "access plus 60 seconds"
ExpiresByType image/gif "access plus 60 seconds"
ExpiresByType image/jpeg "access plus 60 seconds"
ExpiresByType image/png "access plus 60 seconds"
ExpiresByType text/css "access plus 60 seconds"
ExpiresByType text/javascript "access plus 60 seconds"
ExpiresByType application/x-javascript "access plus 60 seconds"
</IfModule>
Apache FilesMatch
<FilesMatch "\.(?i:gif|jpe?g|png|ico|css|js|swf)$">
<IfModule mod_headers.c>
Header set Cache-Control "max-age=60, public, must-revalidate"
</IfModule>
</FilesMatch>
Gestion des versions
L'ajout d'une chaîne de requête à la fin du fichier fera croire au navigateur que le fichier n'est pas identique et qu'il le téléchargera à nouveau.
Chaque fois que vous modifiez une ressource, vous devez mettre à jour la chaîne de requête, par exemple:
<link rel="stylesheet" href="pro-webmasters.css">
<link rel="stylesheet" href="pro-webmasters.css?v=0.1">
<link rel="stylesheet" href="pro-webmasters.css?v=0.2">
Évidemment, cela prend beaucoup de temps lorsque vous avez plusieurs fichiers css, fichiers JavaScript et autres ressources, ceci peut être facilité en utilisant des variables PHP, par exemple:
<?php $VerNumber= "0.0.2"; ?>
<link rel="stylesheet" href="style.css?v=<?php echo $VerNumber; ?>">
<script src="jquery.js?v=<?php echo $VerNumber; ?>"></script>
<img src="image.jpg?v=<?php echo $VerNumber; ?>">