nginx met JS en cache pendant une heure, comme suit
location ~ .*\.(js|css)?$ {
expires 1h;
}
OK, ce n'est pas un problème. Je souhaite actualiser le cache temporairement. Au pire, je peux simplement ajouter un suffixe, par exemple : abc.js?v=123
Maintenant que je l'ai débogué en ligne, je souhaite supprimer le suffixe et restaurer abc.js?v=123
还原到abc.js
dans abc.js
, mais il est toujours en cache pour le moment. Comment puis-je le casser ?
Votre règle ci-dessus ajoute simplement une règle d'expiration à l'en-tête
Dites au navigateur que cette chose expire dans 1 heure
Ce n'est pas que nginx le met en cache
Ce cache fait référence au cache de votre navigateur (client, pas nginx). Dans des circonstances normales,
Ctrl+R
l'actualisation forcée supprimera le cache.Ou videz le cache de votre navigateur et tout ira bien.
Vous n'utilisez pas de module de nettoyage par purge ?
grunt-rev
De cette façon, les paramètres d'en-tête nginx n'expireront jamais.
En utilisant la meilleure solution frontale de l'hémisphère oriental - fis, nous disposons d'un ensemble de solutions dédié.
fis
http://labs.frickle.com/nginx_ngx_cache_purge/README
Visitez 127.0.0.1/purge/abc.js pour supprimer les fichiers mis en cache.
Ajoutez le paramètre --add-module=/path/to/ngx_cache_purge lors de la configuration pour ajouter ce module de purge tiers.
Similaire à
expires
max-age
e-tag
Ces informations d'en-tête sont des en-têtes de cache pour les navigateurs frontaux. Par exemple, si vous définissez simplement une expiration d'une heure, le navigateur ne demandera plus le fichier une heure après la fin de la demande pour communiquer avec le serveur. , les fichiers de cache local sont utilisés à chaque fois. Durant cette heure, seul le navigateur efface le cache ou désactive le cache dans les outils de développement pour communiquer avec le serveur. Dans le cas contraire, toute modification apportée au fichier sur le serveur pendant cette heure n'aura aucun impact sur le navigateur.