在Chrome中永久缓存的React Service-Worker

时间:2019-01-23 17:56:19

标签: reactjs caching service-worker browser-cache

在Chrome中,我的react服务工作者(使用CRA创建)被永久缓存并服务于旧版本。硬重装不会改变任何东西。如果我进入开发工具并手动选择网络旁路来解决问题,但是显然这不是适用于客户端的解决方案。我们的应用程序与Apache一起提供。基本上,我想知道在这种情况下指定no-cache的最佳方法吗?

我看到过一些建议在index.html中使用<meta http-equiv="Cache-control">标签的帖子,但我也读到,最好在Apache conf中指定Cache-control: no-cache -因此,关于最佳效果的任何明确答案做法将受到欢迎。我也尝试过简单地unregister()服务工作者无济于事。

// I also tried tweaking my SW configs here
// registerServiceWorker.js

function registerValidSW(swUrl) {
  navigator.serviceWorker
    .register(swUrl, {
      updateViaCache: "none" // <-- optional param
    }

尽管我做了什么尝试,但是访问过Chrome旧站点的任何人都“卡住”了当前的旧版本。

1 个答案:

答案 0 :(得分:0)

我在Twitter上关注的一个人

  

我还建议打开src / index.js并在底部删除对registerServiceWorker()的调用,因为这可能会导致一些令人困惑的缓存问题(例如,阻止您在加载React后访问浏览器中的API端点)应用一次)。

In this blog post