Я недавно внедрил SSR с облачными функциями и хостингом Firebase.
Когда JS-пакет создается, он получает суффикс разрыва кэша (main.1.js
).
Внутри моей функции у меня есть следующий фрагмент кода для кэширования результатов облачной функции
res.set('Cache-Control', 'public, max-age=300, s-maxage=300');
Во время развертывания я сначала развертываю хостинг, а затем функцию облака
firebase deploy --only hosting:production && gcloud functions deploy ssr --runtime nodejs8 --trigger-http --source dist/server
При развертывании хостинга Firebase main.1.js
заменяется main.2.js
.
Из-за разрыва кэша файл теперь отличается (main.2.js
), но из-за того, что облачная функция кэшируется еще 5 минут - я получаю ошибки при посещении веб-сайта (потому что main.1.js
, на который ссылается кэшированная версия функции, больше не доступен).
Как бы вы исправили такую проблему? Могу ли я иметь два активных развертывания и активировать одно за другим?