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

如何解决Chrome Lighthouse审计时Service Worker注册失败问题

解决方案

  • 调整Lighthouse审计配置
    启动审计前先在Lighthouse设置面板取消勾选 Clear storage 选项,避免Lighthouse清空缓存打断Service Worker注册流程;如果不需要审计PWA相关项,直接取消勾选 Progressive Web App 分类即可绕过Service Worker检测逻辑,不影响其他审计项运行。
  • 调整Service Worker注册时机
    不要在页面初始化同步阶段执行注册,改为页面完全加载后再触发,符合官方最佳实践的同时可避免Lighthouse的加载阶段操作中断注册,修改后代码如下:
    if('serviceWorker' in navigator){
        window.addEventListener('load', () => {
            let sw = 'sw.js';
            navigator.serviceWorker.register(sw, {scope: "/"})
                .then(function(){
                    console.log('Service worker registered.');
                })
                .catch(function(e){
                    console.log('Service worker not registered ', e);
                })
        })
    }
    
  • 校验sw.js的服务端配置
    确保sw.js文件的Cache-Control响应头设置为max-age=0或no-cache,避免审计时加载到过期脚本;同时确认sw.js返回的MIME类型为application/javascript,无4xx/5xx报错。
  • 本地调试额外检查
    本地使用自定义域名调试时,确保启动带参数的Chrome前完全关闭所有正在运行的Chrome进程,否则启动参数不会生效,仍会拦截Service Worker注册。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:36:05