J'ai une Réagir application hébergée sur un compartiment S3. Le code est minimisé à l'aide de yarn build
(c'est créer-réagir-application, en fonction de l'app). L' build
le dossier ressemble à quelque chose comme:
build
├── asset-manifest.json
├── favicon.ico
├── images
│ ├── map-background.png
│ └── robot-icon.svg
├── index.html
├── js
│ ├── fontawesome.js
│ ├── packs
│ │ ├── brands.js
│ │ ├── light.js
│ │ ├── regular.js
│ │ └── solid.js
│ └── README.md
├── service-worker.js
└── static
├── css
│ ├── main.bf27c1d9.css
│ └── main.bf27c1d9.css.map
└── js
├── main.8d11d7ab.js
└── main.8d11d7ab.js.map
Je ne veux plus jamais index.html
à être mis en cache, parce que si je mettre à jour le code (provoquant l'hex suffixe main.*.js
de mise à jour), j'ai besoin de l'utilisateur d'une prochaine visite à revenir sur l' <script src>
variation en index.html
de point pour la mise à jour du code.
Dans CloudFront, je ne peux que semblent exclure des chemins, et à l'exclusion "/" ne semble pas fonctionner correctement. Je suis arriver comportement étrange où je changer le code, et si j'ai cliquer sur "actualiser", je le vois, mais si je quitte Chrome et revenir en arrière, je vois très désuet code pour une raison quelconque.
Je ne veux pas déclencher une invalidation pour tous les communiqué de code (via CodeBuild). Est-il un autre moyen? Je pense que l'un des défis est que puisque c'est une application à l'aide de Réagir Routeur, je vais devoir faire une ruse que par la mise en au document d'erreur de index.html
et en forçant un statut HTTP 200 au lieu de 403.