Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用服务工作者缓存非静态url_Javascript_Regex_Service Worker_Workbox - Fatal编程技术网

Javascript 使用服务工作者缓存非静态url

Javascript 使用服务工作者缓存非静态url,javascript,regex,service-worker,workbox,Javascript,Regex,Service Worker,Workbox,我对workbox(我的服务人员)中的正则表达式有点问题。 我需要缓存我的api的响应,这个响应是一个映像。 为此,我需要请求如下url: 所以我不能在我的服务人员中包含一个特定的路径,我想我需要处理regex。 我试过这个: urlPattern: new RegExp('\/image/'), handler: 'NetworkFirst', options: {

我对workbox(我的服务人员)中的正则表达式有点问题。 我需要缓存我的api的响应,这个响应是一个映像。 为此,我需要请求如下url:

所以我不能在我的服务人员中包含一个特定的路径,我想我需要处理regex。 我试过这个:

                   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()
);