Как зарегистрировать сервисного работника? - PullRequest
0 голосов
/ 01 марта 2019

Не могу зарегистрировать сервисного работника.Файл находится вместе с index.js и app.js.Я получаю следующие ошибки

A bad HTTP response code (404) was received when fetching the script.

Failed to load resource: net::ERR_INVALID_RESPONSE

Registration failed TypeError: Failed to register a ServiceWorker: A 
bad HTTP response code (404) was received when fetching the script.

****** 
    if ('serviceWorker' in navigator) {
        window.addEventListener('`load`', () => {
        navigator.serviceWorker.register('serviceWorker.js', { scope:'./' })
            .then((registration) => {
                console.log('Registration completed successfully',registration);
            })
            .catch((error) => {
                console.log('Registration failed', error);
            })
     })}

1 Ответ

0 голосов
/ 01 марта 2019

Он должен быть не только на стороне index.js и app.js, он должен находиться в корне вашего приложения.так что если случится, что ваши index.js или app.js находятся в папке, скажем, js, это не сработает.Просто поместите serviceWorker.js в тот же каталог, что и index.html, и, пожалуйста, запустите его на сервере

Почему это так?Я не эксперт в этом, но я знаю, что сервисные работники используются для обслуживания всех ваших файлов в автономном режиме.Если вы укажете его как относительный путь, будет сложно отобразить все остальные файлы за пределами.

Это не правило, хотя вы можете как-то найти способ поместить ваш serviceWorker в какую-то подпапку, ноЛично я не считаю это лучшей практикой

...