Я пытался внедрить Service Worker в совершенно новое приложение Angular.Это не угловая SW, это просто из коробки API.Я хочу целенаправленно использовать этот вместо Angular's (на всякий случай, если это спросили).После прочтения кажется, что проблема, с которой я сталкиваюсь, связана с проблемами пути, но я считаю, что путь у меня правильный.Другая проблема, с которой я столкнулся, заключается в том, что мы не можем использовать ng serve
и успешно зарегистрировать ПО, поэтому я начал делать ng build --prod
, а затем развертывать его, используя http-server
, но все же я получаю следующую ошибку:
Service worker registration failed: TypeError: Failed to register a ServiceWorker: A bad HTTP response code (404) was received when fetching the script.
Какие шаги мне нужно, чтобы успешно зарегистрировать это ПО?
Кроме того, моя файловая структура:
- main.ts
- index.html
- service-worker.js
Файл service-worker.js
пуста в моем main.ts
файле содержится регистрация:
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('./service-worker.js')
.then(registration => console.log('Service worker registration succeeded:', registration)
, error => console.log('Service worker registration failed:', error));
} else {
console.log('Service workers are not supported.');
}
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.error(err));```