2015-01-12 2 views
1

Я пытаюсь зарегистрировать работник обслуживания и получаю сообщение об ошибке:служба работник не регистрирует

DOMException: Operation failed by network issue 

страница размещается с помощью GitHub страницы: https://boopathi.in/sw-demo-iss. и исходный код здесь https://github.com/boopathi/sw-demo-iss

Я пытаюсь понять, что это значит и как разрешать ошибки.

ответ

3

Хром, кажется, пытается загрузить/зарегистрировать https://boopathi.in/sw-demo-iss/sw.bundle.js в качестве рабочего, но это 404s. Поэтому вам, вероятно, нужно немного поиграть с путями. Может быть, register('sw.bundle.js') будет работать?

+0

+1. Ошибочные точки и слэши в URL-адресе регистрации могут иметь непреднамеренные последствия. Посмотрите на них внимательно, когда у вас есть эта проблема! – owencm

2
if('serviceWorker' in navigator) { 
    navigator.serviceWorker.register('sw.bundle.js', { 
     scope: 'isstracker' 
    }).then(function(reg) { 
     console.log("Service worker registered") 
    }).catch(function(err) { 
     console.log(err); 
    }); 
} 

Вы в область действия serviceworker к isstracker, это означает, что ваш serviceworker будет работать только для всего после isstracker/ пути, но демо размещается на sw-demo-iss/ пути. Это, скорее всего, является причиной получения SecurityError:

"The Service Worker security policy prevented an action."