Javascript 使用服务工作者缓存非静态url
我对workbox(我的服务人员)中的正则表达式有点问题。 我需要缓存我的api的响应,这个响应是一个映像。 为此,我需要请求如下url: 所以我不能在我的服务人员中包含一个特定的路径,我想我需要处理regex。 我试过这个:Javascript 使用服务工作者缓存非静态url,javascript,regex,service-worker,workbox,Javascript,Regex,Service Worker,Workbox,我对workbox(我的服务人员)中的正则表达式有点问题。 我需要缓存我的api的响应,这个响应是一个映像。 为此,我需要请求如下url: 所以我不能在我的服务人员中包含一个特定的路径,我想我需要处理regex。 我试过这个: urlPattern: new RegExp('\/image/'), handler: 'NetworkFirst', options: {
urlPattern: new RegExp('\/image/'),
handler: 'NetworkFirst',
options: {
networkTimeoutSeconds: 15,
cacheName: 'Saved bill img',
expiration: {
maxEntries: 25,
maxAgeSeconds: 60 * 60,
},
}
但是它不起作用,有什么帮助吗?我应该问的问题是如何在正则表达式中定义查询的开头。所以他们的答案很多。这就是我所做的:
new RegExp('^https:\/\/myapi\/image/')
我不知道您使用的是哪个版本的Workbox,但示例代码与我已知的版本不匹配 该页面显示当前版本(5.1.3)的此语法: 您正在使用的正则表达式有一个未转换的最后斜杠。你可以先试试正则表达式 为了进一步举例说明,regex
^https:\/\/example\.com\/image\/
将匹配URL以开头的所有请求https://example.com/image/
。您可以在JavaScript中使用以下任何变体:
newregexp(“^https:\/\/example\.com\/image\/”)
/^https:\/\/example\.com\/image\/
import {registerRoute} from 'workbox-routing';
import {StaleWhileRevalidate} from 'workbox-strategies';
registerRoute(/\/some\/path\/some-file\.txt$/,
new StaleWhileRevalidate()
);