Я пытаюсь интегрировать PWA в свое веб-приложение .NET с помощью WebEssentials.AspNetCore.PWA.
Я следую этому руководству https://medium.com/beginners-guide-to-mobile-web-development/introduction-to-pwa-in-asp-net-core-application-da96c7cc4918
Я сделал все, что упоминается в этом уроке. Но я получаю следующую ошибку
Uncaught (in promise) TypeError: Failed to register a ServiceWorker: A bad HTTP response code (404) was received when fetching the script.
Когда я смотрел документ WebEssentials.AspNetCore.PWA: https://github.com/madskristensen/WebEssentials.AspNetCore.ServiceWorker]2
Следующая строка должна быть добавлена над тегом </body>
<script>'serviceWorker'in navigator&&navigator.serviceWorker.register('/serviceworker')</script>
вместо этой строки у меня следующая строка
<script nws-csp-add-nonce='true'>'serviceWorker'in navigator&&navigator.serviceWorker.register('~/serviceworker')</script>
Как видите, путь моего обслуживающего работника неверен ('~ / serviceworker'). Как я могу исправить эту ошибку пути сервис-воркера?





Не получается из-за тильды ~
Обходной путь такой:
Запрещать регистрирует сервис-воркер и манифест:
services.AddProgressiveWebApp(new PwaOptions
{
RegisterServiceWorker = false,
RegisterWebmanifest = false,
OfflineRoute = "offline"
});
Затем вы можете вручную добавить их в _Layout (где manifest.webmanifest - ваш файл webmanifest.json в wwwroot)
<meta name = "theme-color" content = "#FFFFFF" />
<link rel = "manifest" href = "/manifest.webmanifest" />
И наконец добавляем сервис-воркер
<script>'serviceWorker' in navigator && navigator.serviceWorker.register('/serviceworker')</script>
Основываясь на этом нить, проверьте путь вашего обслуживающего работника в
index.html, относительный или абсолютный. Заявлено здесь, что если вы используете локальный репозиторий, то при указании URL-адреса или пути к вашему файлу не указывайте абсолютный путь, вместо этого укажите абсолютный путь.