htaccess - Comment faire pour forcer le navigateur du client pour vider le cache?
Pour mon site j'ai le texte suivant les règles htaccess:
# BEGIN Gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</IfModule>
# END Gzip
# BEGIN EXPIRES
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 10 days"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/plain "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-icon "access plus 1 year"
</IfModule>
# END EXPIRES
Je viens de mettre à jour mon site et il regarda tout tordu jusqu'à ce que j'ai vidé le cache de mon navigateur. Comment puis-je forcer le navigateur du client pour effacer le cache après une mise à jour de sorte que l'utilisateur peut voir les changements?
- Problème similaire?: stackoverflow.com/questions/1207492/...
- Vous avez besoin de changer l'url de la ressource. par exemple en renommant le dossier qui contient les ressources, ou le nom de fichier lui-même. Google
cache busting
pour plus d'info. - Ici vous pouvez trouver une meilleure solution: stackoverflow.com/questions/118884/...
- Jetez un oeil à cette question, je pense que ça peut vous aider: [stackoverflow.com/questions/11532636/... [1]: stackoverflow.com/questions/11532636/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez forcer les navigateurs à cache quelque chose, mais
Vous ne pouvez pas forcer les navigateurs pour effacer la mémoire cache.
Donc la seule (AMAIK) est d'utiliser un nouvelle URL de vos ressources. Quelque chose comme la gestion des versions.
Comme d'autres réponses ont dit, en changeant l'URL est une bonne technique de contournement du cache, il est toutefois beaucoup de travail à faire par l'intermédiaire d'un site plus grand, changement de toutes les Url et également déplacer les fichiers.
Une technique similaire est juste d'ajouter un paramètre de version de la chaîne de l'URL qui est soit une chaîne de caractères aléatoires /numéro ou un numéro de version, et cible les fichiers modifiés.
Par exemple, si vous modifiez vos sites CSS et il semble bancale jusqu'à ce que vous ne une force de rafraîchissement, il suffit d'ajouter
?ver=1.1
de la CSS à l'importation, à la tête de la file. Ce que le navigateur est un fichier différent, mais vous avez seulement besoin de modifier l'importation, pas l'emplacement ou le nom du fichier.e.g:
<link href="assets/css/style.css" type="text/css" />
devient
<link href="assets/css/style.css?ver=1.1" type="text/css" />
Fonctionne très bien pour les fichiers javascript aussi.
J'ai reçu votre problème...
Bien que nous pouvons effacer cache du navigateur client complètement, mais vous pouvez ajouter du code dans votre application de sorte que vos modifications récentes reflètent dans le navigateur client.
Dans votre
<head>
:Source: http://goo.gl/JojsO
Vous ne pouvez pas forcer les navigateurs pour effacer le cache.
Votre .html fichier semble être chargées à nouveau plus tôt qu'elle expire au bout de 10 jours.
Ce que vous avez à faire est de mettre à jour votre .fichier html et copier tous vos fichiers dans un nouveau dossier comme
version-2/
ou ajouter un identificateur de version de chaque fichier commemypicture-2.jpg
. Ensuite, vous faites référence à ces nouveaux fichiers dans votre .fichier html et le navigateur va charger à nouveau parce que la situation a changé.Vous pouvez dire au navigateur de ne jamais le cache de votre site en collant code suivant dans l'en-tête
Et pour éviter le js, css cache, vous pouvez utiliser l'outil de rapetisser et de dissimuler les scripts qui doivent générer un nom de fichier aléatoire à chaque fois. Ce serait forcer le navigateur à recharger depuis un serveur trop.
Espérons-le, qui permet de.
Vous pouvez configurer l'accès de plus de 1 secondes" et de cette façon, il va vous rafraîchir la prochaine fois que l'utilisateur accède au site. Conserver le réglage pour un mois.
Le plus simple est d'ajouter filetime à la demande.
par exemple
myfile.txt?2014-10-30-13:12:33
gestion des versions par date.
Dans mon cas, j'ai beaucoup changer un spécifique fichier JS et j'ai besoin d'être dans sa dernière version de tous les navigateurs où est utilisé.
Je n'ai pas de numéro de version spécifique pour ce fichier, ainsi j'ai simplement hachage la date et l'heure (heure et minutes) et de le passer comme le numéro de version:
J'ai besoin qu'il soit chargé à chaque minute, mais vous pouvez décider quand il doit être rechargé.
Désormais l'habitude de vous aider avec des fichiers qui sont déjà dans le cache, mais aller de l'avant, vous pouvez utiliser les méthodes suivantes pour forcer facilement une demande pour obtenir quelque chose de nouveau, sans changer le nom de fichier réel.
Bien sûr, le plus haut dans votre structure de dossiers de ce type d'approche,
plus vous coup de pied des choses hors de cache avec un simple changement.
Ainsi, par exemple, si vous stockez l'intégralité de la css et javascript de votre site dans un dossier principal
Alors vous pouvez pourriez commencer le référencement comme "actifs-XXX" dans votre code html, et l'utilisation d'une règle comme pour le coup de tous les actifs de contenu de cache.
Noter que si vous y allez avec ce, après avoir de travail, changer de 302 à une 301, puis la mise en cache du coup de pied dans. Quand c'est un 302 il l'habitude de cache au niveau du navigateur parce que c'est une redirection temporaire. Si vous faites de cette façon, vous pouvez augmenter jusqu'à l'expiration du délai par défaut de 30 jours pour tous les actifs, puisque vous pouvez facilement coup de pied des choses hors de cache en changeant simplement le nom du dossier dans la page de connexion.
Changer le nom de la .Fichier CSS
Charger la page et changer de nouveau le fichier dans le nom d'origine, il fonctionne pour moi.
Cela a fonctionné pour moi.
regardez ce:
remplacer par ceci:
Télécharger et actualiser la page. Vous obtiendrez une page d'erreur.
il suffit de changer de nouveau à:
reupload et actualiser la page à nouveau.
J'ai vérifié cela sur tous mes appareils et, il a travaillé.