如何配置 Create React Apps 默认 Service Worker 以缓存不在 react src 上下文(public 文件夹)中的资产?

How to configre Create React Apps default Service Worker to cache assets that are not in react src Context (public Folder)?

今天我尝试了 Create React App 的 ServiceWorker,除了在 public/img/favicon.ico 中定义的我的页面的 Favicon 之外,所有内容都被缓存了,所以当页面离线时,Favicon 消失并显示连接错误在控制台中,有没有人有经验如何配置 Service worker 的网页插件来缓存它?

我有一个 CRA 项目 here。我不预缓存我的网站图标,我让默认处理程序运行时缓存它,但我会预缓存后备图像,您应该能够做同样的事情来预缓存您的网站图标。

CRA 创建了一个默认软件,我认为我没有触及它。为了获得更多控制,我在 sw-addendum 文件中使用了 workbox,我将其附加到构建中的默认 sw。附录中可以预缓存你需要的,设置路由等

有关部署后脚本,请参阅 package.json

"postdeploy": "cp src/face.69232788.jpg docs/face.69232788.jpg && cat src/swAddendum.js >> docs/service-worker.js",

sw-附录here

workbox.precaching.precache([
  './face.69232788.jpg',
]);