首页 > 解决方案 > 使用 WebEssentials.AspNetCore.PWA 注册 ServiceWorker 失败(404 错误)

问题描述

我最近一直在将 WebEssentials.AspNetCore.PWA 添加到我的几个站点中,并且一切都很容易,(公平地说,它很容易安装)。

但是一个站点让我非常头疼,并且总是报告以下错误:

Uncaught (in promise) TypeError: Failed to register a ServiceWorker for scope ('https://dawson-floridavilla.co.uk/') with script ('https://dawson-floridavilla.co.uk/serviceworker'): A bad HTTP response code (404) was received when fetching the script.

我还收到 manifest.webmanifest 的 404 错误。

如果我尝试导航到https://dawson-floridavilla.co.uk/serviceworker我会收到 404 错误,其中其他站点都显示 ServiceWorker JavaScript 代码。

该站点不是很复杂,因此我不确定要剥离什么来测试任何不兼容性,我尝试/实现的所有四个站点都是在 Windows 10 VS Studio Dev Server 或 Debian 上运行的 ASP.NET Core 3.1 10 生产服务器。

有没有其他人有类似的问题?我认为该包正在尝试运行,因为它添加了 serviceworker 脚本和 webmanifest 的行,但两者都返回 404 错误,如上所述。

标签: asp.net-core-mvcservice-workerrazor-pages

解决方案


在 Github 上提交问题后,我意识到这个站点纯粹是 Razor 页面,而我的其他站点是 MVC(用于 API 路由)和 Razor 页面的混合。

这意味着其他站点在 ConfigureServices 和 EndPoint Routing 中添加和映射了控制器,但在此项目中没有,这是包需要映射附加代码的东西。

为了社区的利益,我在 StackOverflow 和 Github 上发布了这篇文章,主要是因为微软正在推广 Razor Pages 作为 MVC 的前进方向,其他人将来可能会遇到同样的问题。


推荐阅读