首页 > 解决方案 > 未捕获(承诺中)类型错误:无法在“addAll”上执行“缓存”:渐进式 Web 应用程序上的请求失败

问题描述

我正在学习一个简单的 PWA 教程,但是当我完成它时,我收到以下控制台错误,

Uncaught (in promise) TypeError: Failed to execute 'Cache' on 'addAll': Request failed

这是我的服务人员文件

const staticDevCoffee = "dev-coffee-site-v1"
const assets = [
  "/",
  "/test.html",
  "/csstest/style.css",
  "/jstest/app.js",
  "/coffee.png",
]

self.addEventListener("install", installEvent => {
  installEvent.waitUntil(
    caches.open(staticDevCoffee).then(cache => {
      cache.addAll(assets)
    })
  )
})

当我运行灯塔测试时,我得到了这个,

start_url does not respond with a 200 when offlineThe start_url did respond, but not via a service worker.

这是我第一次看 PWA,所以我有点卡住了。我已经尝试了几种我在 SO 上找到的解决方案,但都没有奏效。

标签: webservice-worker

解决方案


  • 对于第一个例外:-

    未捕获(承诺中)类型错误:无法在“addAll”上执行“缓存”:请求失败

当您在缓存列表中提到的任何文件返回 404 响应时,您会收到此异常。因此,请确保所有资源都提供 200。

  • 对于第二个错误:-

    离线时 start_url 不响应 200 start_url 确实响应。

在您的情况下,由于文件没有被缓存(由于第一个异常),您会收到此错误,并确保在缓存列表中缓存根索引文件。


推荐阅读