Исключить URL-адреса дочерних сайтов при использовании предварительного кеширования в angular5

Могу ли я исключить некоторые URL-адреса при использовании swprecache для создания сервис-воркера. Ниже мой файл swprecache.config.json

module.exports = {
navigateFallback: '/index.html',
stripPrefix: 'dist',
root: 'dist/',
staticFileGlobs: [
  'dist/index.html',
  'dist/**.js',
  'dist/**.css',
  'dist/**.ico',
  'dist/assets/images/**.jpg',
  'dist/assets/images/**.png',
  'dist/assets/images/**.gif',
  'dist/assets/js/**/**.js',
  'dist/assets/js/**.js',
  'dist/assets/css/**.css',
  'dist/assets/fonts/**.{js,html,css,png,jpg,gif,svg,eot,ttf,woff,ico}',
  'dist/**.{js,html,css,png,jpg,gif,svg,eot,ttf,woff,ico}',
   '!dist/Subscription/**.{js,html,css,png,jpg,gif,svg,eot,ttf,woff,ico}'
],

runtimeCaching: [{
  urlPattern: /^https:\/\/netdna\.bootstrapcdn\.com\//,
  handler: 'networkFirst'
}]

};

Я пытался использовать оператор not, например '! Dist / Subscription / **. {Js, html, css, png, jpg, gif, svg, eot, ttf, woff, ico}'. Но он не работает. Итак, я Получение не может соответствовать какой-либо ошибке маршрута при переходе на дочерний сайт.После очистки только данных браузера я могу перейти на дочерний сайт. Может ли кто-нибудь помочь мне исправить это, пожалуйста, найдите мою ошибку  введите описание изображения здесь

Спасибо


person kamalav    schedule 02.03.2018    source источник
comment
Хорошо, но теперь похоже, что у вас проблема с угловой маршрутизацией вместо проблемы с предварительным кешем. Какие маршруты вы определили?   -  person Stef Chäser    schedule 07.03.2018
comment
если проблема с маршрутизацией означает, что он не должен переходить на дочерний сайт в первый раз, верно?   -  person kamalav    schedule 08.03.2018


Ответы (2)


это должно работать:

staticFileGlobs: [
  'dist/index.html',
  'dist/*.{js,css,ico}',
  'dist/!(Subscription)/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff,ico}'
]

найдено здесь: https://github.com/GoogleChromeLabs/sw-precache/issues/97

person Stef Chäser    schedule 07.03.2018
comment
Спасибо, это тоже не работает, пожалуйста, найдите мой снимок экрана с ошибкой после использования этого - person kamalav; 07.03.2018

после создания сервисного рабочего, я проверил, содержит ли запрос «Подписка» в событии выборки, как показано ниже, которое работает нормально

 self.addEventListener('fetch', function(event) {
if (event.request.method === 'GET') {
// Should we call event.respondWith() inside this fetch event handler?
// This needs to be determined synchronously, which will give other fetch
// handlers a chance to handle the request if need be.
var shouldRespond;
if (event.request.url.match('^.*(\/Subscription\/).*$')) {
    return false;
}
  // OR

if (event.request.url.indexOf('/Subscription/') !== -1) {
    return false;
}

 .............}})

Он работает нормально.

person kamalav    schedule 12.03.2018