【发布时间】:2019-10-08 23:13:43
【问题描述】:
我可以按照 Angular 文档创建和测试 PWA 的基本 Angular 应用程序。但是,我无法将 .NET Core 2.2 / Angular 8 应用程序(最初使用 Visual Studio Angular SPA 模板创建)添加到渐进式 Web 应用程序。
我正在努力寻找有关如何执行此操作的任何在线帮助。微软的一切都是关于将 MVC 应用程序转换为 PWA - 没有关于将 Angular SPA / .NET Core 项目转换为 PWA。 Angular 方面的所有内容都没有说明 .NET Core Visual Studio 场景。
到目前为止,我所做的是通过 ng add @angular/pwa 对 angular 片段的 PWA 支持(并遵循整个 angular PWA / Service Worker 教程)
Microsoft 有一个用于 .net 核心服务工作者的 nuget 包,但据我所知,这不是针对 Angular SPA 的(因为它包括一个服务工作者,但我假设由 ng add @angular/ 创建的那个包pwa 是我需要的)。 https://github.com/madskristensen/WebEssentials.AspNetCore.ServiceWorker
我在 startup.cs 中尝试了各种配置,但似乎没有任何效果,包括跳过
spa.UseAngularCliServer(npmScript: "start");
改为使用
spa.UseProxyToSpaDevelopmentServer("http://localhost:8080")
并在 clientapp 文件夹下手动启动 http-server -p 8080 -c -1(根据 Angular 文档)(也尝试直接在 dist 文件夹下启动它)。
在我发布到我们的 IIS 服务器(每个 chrome 的开发工具)后,清单和服务工作者都没有加载。
如果有人对此有一个工作版本的 startup.cs 和其他配置文件或一些指针,将不胜感激。
【问题讨论】:
-
你在说什么,没有 PWA 模板,关闭计算机上的互联网会大大限制你的数据连接并开始制作仍然有效的功能,中提琴你有一个 PWA!
-
如果你使用 Angular 作为前端,.net 作为后端,你只需要担心 Angular 部分是 PWA,因为它将与你的 api 分离。 .Net 不需要了解有关您的角度 pwa 的任何信息,也不需要任何其他配置。该 Web Essentials 存储库适用于 MVC 模板,因为 .net 确实能够动态呈现页面,但如果您使用的是 angular,那么所有内容都已编译。您可以将构建的文件放在 wwwroot 中,但此时您基本上只是组合了两个单独的“项目”。
-
@nullptr.t 这就是我最初的想法,但让我感到震惊的是,在设置 Angular 前端并通过 VS 在本地运行服务器之后,服务人员根本没有运行.当我发布到 IIS 时,浏览器既没有检测到清单也没有检测到服务工作人员(开发工具显示清单丢失并且服务器工作人员没有运行)。关于我如何为 PWA 设置 Angular 部分,这一定是一个配置问题。至少我很高兴听到它应该可以工作并且它不是一些固有的不兼容
标签: c# angular visual-studio asp.net-core progressive-web-apps