gpt4 book ai didi

progressive-web-apps - 如何使工作箱缓存跨源响应?

转载 作者:行者123 更新时间:2023-12-02 08:08:27 24 4
gpt4 key购买 nike

根据 workbox doc ,应配置跨域请求以确保正则表达式匹配 URL 的开头。但是,它不起作用。

Service Worker 代码如下所示。

importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.0.0/workbox-sw.js');

workbox.routing.registerRoute(
/.*\.(png|jpg|jpeg|svg|gif)/,
workbox.strategies.cacheFirst()
);

workbox.routing.registerRoute(
new RegExp('^https://a248.e.akamai.net/.*'),
workbox.strategies.cacheFirst()
);

在页面中,来自相同来源资源的响应被缓存,但来自 https://a248.e.akami.net 的响应被缓存。不是。

我的配置有问题吗?或者这是一个工作箱 3.0.0 错误?

最佳答案

您的 https://a248.e.akami.net 上是否启用了 CORS?服务器?如果没有,你会回来opaque responses ,默认情况下,使用 cacheFirst 时不会缓存这些内容。战略。

有一个 guide for handling third-party requests如果您想在使用 cacheFirst 时选择缓存这些响应,您可以使用一个配方战略:

workbox.routing.registerRoute(
new RegExp('^https://a248.e.akamai.net/.*'),
workbox.strategies.cacheFirst({
plugins: [
new workbox.cacheableResponse.Plugin({
statuses: [0, 200]
})
]
}),
);

出现这种情况时,在 localhost 中使用 Workbox v3 时,您还应该看到 JavaScript 控制台中记录的新警告,说明发生了什么。

关于progressive-web-apps - 如何使工作箱缓存跨源响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49295757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com