Nous déployons notre React sur le serveur Apache à l'aide du pipeline Jenkins. Lorsque nous déployons de nouveaux codes, la plupart des nouvelles fonctionnalités fonctionnent bien, mais pas pour que toutes les modifications reflètent le dernier du navigateur. Utilisateurs avoir à ouvrir une fenêtre incognito ou de cache effacer pour voir la nouvelle fonctionnalité.
J'ai vu quelques solutions liées à applications angulaires mais quelque chose de spécifique à React application, je ne vois nulle part. Pendant le temps de construction, pouvons-nous ajouter quelque chose qui sera Servir automatiquement les dernières modifications pour l'utilisateur final? Je suppose que la buse de cache est requise, mais comment pouvons-nous faire de nombreuses modifications dans le code, car la solution ci-dessus a fait pour Angular =.
J'utilise personnellement ci-dessous dans mon environnement de développement pour tester
# Never cache these...
# HTTP 1.1=>Cache-Control, HTTP 1.0=>pragma and Expires=>proxy
# for html,htm,json,js,css as follows
<filesMatch "\.(html|htm|json|js|css)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "0"
</ifModule>
</filesMatch>
Le serveur ajoute l'en-tête Etag à une réponse contenant une ressource servie et que le client met en cache la ressource et se souvient de sa balise d'entité (la valeur de l'ETAG).
Autre moyen simple serait d'utiliser la chaîne de requête, d'incrémenter la requête à chaque fois que vous apportez une modification ou utilisez une chaîne unique lorsque vous apportez des modifications, par exemple comme suit. Vous n'êtes pas obligé de changer Apache Config Browser chargera un script respectif.
# first version
<script src="path/to/your/app-loader.js?version=1"></script>