首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预缓存的内容不会从缓存中加载。

预缓存的内容不会从缓存中加载。
EN

Stack Overflow用户
提问于 2021-04-19 18:40:46
回答 1查看 70关注 0票数 0

在我的React 应用程序中,我实现了服务工作人员(通过工作框)。它很好用。每次我更改代码、重新构建、运行服务器、转到浏览器时,我都会看到缓存被成功地更新了。

但是有一件事我不能理解。当我从本地服务器删除某些资产(js或css)并试图在浏览器中执行一些操作(这会调用该资产)时,我将得到一个错误,该错误表示该文件不可用。

主要的问题是,如果该资产已经在缓存存储中,那么它不应该从那个缓存中加载,还是我遗漏了什么?

我使用的组件是

  1. 节点/快递(用于服务器)
  2. @loadable/components(用于代码拆分),结合webpack
  3. Google工作盒插件
代码语言:javascript
复制
// my sw.js file
import { skipWaiting } from 'workbox-core';
import { precacheAndRoute } from 'workbox-precaching';

declare const self: Window & ServiceWorkerGlobalScope;

precacheAndRoute(self.__WB_MANIFEST);

skipWaiting();

// my workbox setup
const serviceWorkerRegistration = async (): Promise<void> => {
  const { Workbox } = await import('workbox-window');
  const wb = new Workbox('./service-worker.js');

  wb.addEventListener('activated', (event: any) => {
    if (event.isExternal) {
      window.location.reload();
    }
  });

  wb.register();
};
EN

回答 1

Stack Overflow用户

发布于 2021-04-22 20:49:47

这是由于您在服务工作人员内部使用了skipWaiting()。当waiting服务工作人员激活时,它将删除与新的服务工作者部署不再关联的所有过时的预缓存条目。

在这两个密切相关的答案中有更多的背景资料,以及一个介绍:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67167616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档