Неправильное расположение 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>
Другие вопросы по тегам