必须手动注销Service Worker并清空全部Cache Storage才能修复PWA异常;操作路径为about:debugging#/runtime/this-firefox→卸载对应Worker→逐个删除其所有缓存项→用console验证navigator.serviceWorker.controller?.scriptURL返回undefined。

当火狐浏览器中某个网站的PWA功能异常、离线页面不更新、图标未刷新或资源始终加载旧版本时,很可能是该站注册的Service Worker仍在后台运行并强制返回过期缓存内容,必须彻底清除其注册状态与关联缓存存储才能恢复正常。
通过 about:debugging 手动注销 Service Worker 并清空 Cache Storage
这一步是核心操作,绕过图形化设置界面,直连底层运行时控制台,确保 Service Worker 注册被真实解除,而非仅禁用或忽略。
1、在火狐地址栏中输入 about:debugging#/runtime/this-firefox 并回车;页面加载后若提示“未启用调试”,请先勾选左上角“启用USB调试”和“显示运行时”。
2、等待右侧列表完全展开,在“Service Workers”章节下查找目标网站条目——它通常显示为域名(如 web.whatsapp.com)、根路径(/)或 sw.js 脚本名;注意:必须确认该条目状态为“已激活”或“正在等待”,否则说明当前页面未受其控制,无需执行后续步骤。
3、点击该条目右侧的“卸载”按钮;弹出确认框后点击“卸载”,此时 Service Worker 注册即被永久移除,不再拦截任何请求。
4、在同一行下方,点击“缓存存储”链接,跳转至 Cache Storage 管理页;页面右侧会列出所有该 Worker 曾创建的缓存名称,例如 precache-v2、runtime-cache-2026、offline-fallback 等。
5、逐一点击每个缓存名称,进入其详情页后点击“删除”按钮;不可只删其中一个——【必须清空全部缓存项】,否则残留缓存仍可能被新注册的 Worker 读取复用。
设置基于 systemd 的看门狗,使 Node.js 长运行服务(如 Telegram 机器人、Express 仪表盘等)在 shell 退出、SSH 断开等情况下保持运行。
验证 Service Worker 是否真正退出
注销与清空后需立即验证,避免因页面未刷新或Worker延迟终止导致误判。
打开目标网站页面 → 按 Ctrl+Shift+I(Windows/Linux)或 Cmd+Option+I(macOS)调出开发者工具 → 切换到“控制台”标签页 → 输入:
navigator.serviceWorker.controller?.scriptURL
若返回 undefined 或 null,说明当前页面已脱离 Service Worker 控制;若仍返回有效 URL,则需关闭所有该站标签页,再重新打开并重复步骤一。
补充:用开发者工具“应用程序”面板快速重置
此方法适用于已打开目标网站页面且希望一步到位的场景,比 about:debugging 更轻量但依赖页面上下文。
方法一:在开发者工具中切换到“应用程序”选项卡 → 左侧边栏点击“Service Workers” → 点击右侧“取消注册”链接(如有)→ 再点击“缓存存储” → 右键各缓存名称选择“Delete”。
方法二:在“应用程序”→“清除存储”区域,勾选“Cache API”“Service Worker registrations”“IndexedDB”三项 → 点击“清除站点数据”;该操作范围更广,会同时清理 Cookie 和 LocalStorage,仅在你明确需要全站重置时使用。










