You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 14 Firebase部署后用户加载旧缓存版本问题求助

Angular 14 SPA部署Firebase后缓存旧版本问题

我有一个部署在Firebase上的Angular 14单页应用(SPA),遇到了用户访问时加载缓存的旧版本而非最新版本的问题。

问题重现步骤

  • 用户打开应用,当前为v1.0.0版本
  • 我部署新版本v2.0.0
  • 用户再次打开应用,仍加载v1.0.0版本(推测来自缓存),但刷新页面后会加载v2.0.0

预期行为

  • 用户打开应用,当前为v1.0.0版本
  • 我部署新版本v2.0.0
  • 用户再次打开应用时直接加载v2.0.0版本,无需手动刷新

排查过程

最初我认为是PWA Service Worker导致该问题,了解到PWA的Service Worker会在应用打开后获取新版本,下次启动时更新,可通过swUpdate.available.subscribe通知用户并调用location.reload()强制刷新,但我不想采用此方案,因此移除了PWA。

现在应用仅为普通SPA(无PWA),且已通过以下代码注销Service Worker、删除缓存(浏览器中也已确认无Service Worker、manifest等),但问题依然存在:

if ("caches" in window) {
  caches.keys().then(function (keyList) {
    return Promise.all(
      keyList.map(function (key) {
        return caches.delete(key);
      })
    );
  });
}

if (window.navigator && navigator.serviceWorker) {
  navigator.serviceWorker.getRegistrations().then(function (registrations) {
    for (let registration of registrations) {
      registration.unregister();
    }
  });
}

我的build脚本配置如下:

{
  ...
  "build": "ng build --configuration production --aot --output-hashing=all"
  ...
}

内容的提问来源于stack exchange,提问作者sergiuwaxmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 13:25:48