Регистрация рабочего ящикаРучная проблема с обналичиванием

Это мой скомпилированный сервис-работник с workbox-webpack-plugin (InjectManifest):

importScripts("/dist/precache-manifest.fec4937a7fe6a37db29b13fc00b6d92a.js", "/dist/workbox-v3.2.0/workbox-sw.js");
workbox.setConfig({modulePathPrefix: "/dist/workbox-v3.2.0"});
importScripts('/idb.js');
importScripts('/utility.js');

var STATIC_FILES = [
    '/index.html',
    '/idb.js',
    '/utility.js',
];

workbox.routing.registerRoute(
    'http://54.xx.xxx.57/(.*)',
    workbox.strategies.networkFirst({
        cacheName: 'cache-posts'
    }),
    'GET'
);

self.__precacheManifest = STATIC_FILES.concat(self.__precacheManifest || []);
workbox.precaching.suppressWarnings();
workbox.precaching.precacheAndRoute(self.__precacheManifest, {});

С кешированием все в порядке, но я не могу понять, как заставить registerRoute работать, и я попробовал несколько вещей. SW просто не обналичивает ничего, что приходит с " http://54.xx.xxx.57/". Пожалуйста помоги...:)

2 ответа

Похоже, это не регулярное выражение в registerRoute. Должно быть:

workbox.routing.registerRoute(
  new RegExp('http://54.xx.xxx.57/(.*)'),
  workbox.strategies.networkFirst({
    cacheName: 'cache-posts'
  }),
 'GET');

В вашем регулярном выражении есть ошибки. Вы должны избежать косой черты, как это.

 '/http:\/\/54.xx.xxx.57\/(.*)/'

В идеале точки также должны быть экранированы, если вы не хотите ловить какой-либо символ вместо них, например, так:

'/http:\/\/54\.xx\.xxx\.57\/(.*)/'
Другие вопросы по тегам