Мое экспресс-приложение работает в контейнере Amazon ECS за балансировщиком нагрузки ALB.
Для очистки кэша веб-пакет генерирует новый хэш каждый раз, когда приложение собирается и выпускается, и добавляет его к имени файла CSS (например,main.b938eb5b2934c85d13e0.css
).
Во время развертывания нового выпуска оба контейнера (старая и новая версия) работают в течение примерно одной минуты, а LB случайным образом направляет запросы одному из контейнеров.
Иногда случается, что пользователи получают index.html
из нового контейнера, но следующий запрос CSS направляется в старый контейнер, что приводит к 404, поскольку хэш-часть имени файла отличается.Затем пользователи видят полностью сломанный графический стиль без стилей.
Как этого избежать, не теряя аспект очистки кэша?