Неправильное расположение serviceworker при интеграции PWA в.NET Web Application с использованием WebEssentials.AspNetCore.PWA
Я пытаюсь интегрировать 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') . Как я могу исправить эту ошибку пути работника службы?
1 ответ
Это не из-за тильды ~
Обходной путь такой:
Отключить регистрацию работника сервиса и манифеста:
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>