V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xiaoming1992
V2EX  ›  问与答

救命!网站被 service worker 缓存了,现在要更换换不了了

  •  
  •   xiaoming1992 · 2022-01-27 12:24:48 +08:00 via Android · 1211 次点击
    这是一个创建于 1034 天前的主题,其中的信息可能已经有所发展或是发生改变。

    手欠给一个网站主站上了 service worker ,现在整个前端项目要换成别人的,换不过去了,访问该网站一直访问到我的项目。

    我想的解决方案是: 把他们的内容放到子域名里,然后更新我的前端页面,用户访问主站时,前端重定向到那个子域名。

    不知道有什么 不用改子域名,直接我这边处理一下,就能使用户访问主站时直接访问到他们的项目 的办法吗?

    啊!我为什么要手欠给上 service worker 啊!!!

    oott123
        1
    oott123  
       2022-01-27 13:59:55 +08:00
    给你的 service worker url 返回个 404 啊。再带一个 Clear-Site-Data: "storage" 大概就好了
    xiaoming1992
        2
    xiaoming1992  
    OP
       2022-01-27 14:48:18 +08:00 via Android
    @oott123 老哥,能直接改 service-worker.js 的内容吗?因为那个网站现在是外包人员在管理,我不知道你这个方法是在 nginx 还是在哪儿配置,可能跟他们沟通起来会比较麻烦。

    我参考这个方法 https://stackoverflow.com/a/55088582

    但是刷新之后仍旧访问的旧内容。
    oott123
        3
    oott123  
       2022-01-27 15:07:27 +08:00
    查了下文档,不应该返回 404 的。如果只返回 404 ,会使得老 sw 正常工作。

    应当把你的 sw.js 清空(或者改成你提到的那个链接内容),返回 200 。这应当在 24~48 小时内生效。

    如果可以的话,在 header 中新增一个 Clear-Site-Data: "storage" 会让浏览器主动清空你的 service worker 缓存(和 localStroage 等一系列本地存储)。
    xiaoming1992
        4
    xiaoming1992  
    OP
       2022-01-27 18:41:35 +08:00 via Android
    @oott123 感谢感谢!沟通有误,虚惊一场。不过我按照谷歌相关文档来删除相应的缓存,可是刷新页面后仍然访问这些缓存,可能是我删除的手打不对,晚些研究一下。
    xiaoming1992
        5
    xiaoming1992  
    OP
       2022-01-27 18:42:44 +08:00 via Android
    @oott123 我试下清空 service-worker.js 试下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3145 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:40 · PVG 21:40 · LAX 05:40 · JFK 08:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.