Регистрация рабочего ящикаРучная проблема с обналичиванием
Это мой скомпилированный сервис-работник с 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\/(.*)/'