Я пытаюсь обслуживать сайт создания-реакции-приложения на AWS Cloudfront после развертывания на S3.
index.html все еще пытается получить старый файл main.xxxxx.js после развертывания на S3.Для кэширования сайта в браузере используется файл service-worker.js по умолчанию.
Если вы перезагрузите браузер, приложение загружается правильно.
Может возникнуть конфликт между кэшем service-worker.js икэш облачного фронта.серверный работник не получает вновь загруженный файл main.xxx.js, а вместо него старый, а в облачном фронте - новый файл main.xxxxx.js после того, как мы аннулируем существующие файлы
Повторное создание:
npm run build.
aws s3 sync ./build s3://$S3_BUCKET/frontend --delete --acl 'public-read'
aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_ID --paths '/*'
aws s3 cp ./build/service-worker.js s3://$S3_BUCKET/frontend/service-worker.js --cache-control max-age=0
В облачном фронте задано использование заголовков исходного кэша (будут использоваться заголовки файлового кэша)
Ожидаемое поведение: после нового развертывания с указанными шагами при попытке доступа к приложению с первой попытки это должно получитьновый файл main.xxxx.js и загрузить обновленное содержимое