Ace*_*s25 6 livereload asp.net-core angular .net-core-3.1
我正在尝试使用面向 ASP.NET Core 3.1 的 Angular 模板在 Visual Studio 2019 中搭建一个全新的 ASP.NET Core Web 应用程序。
当应用程序工作时,实时重新加载只会工作一两次,然后就会完全停止工作,无论您是对 .ts 文件还是 .html 文件进行更改。关闭 Visual Studio,然后使用任务管理器关闭 Node.js 实例有时会使其再次工作,但如果幸运的话,它只会在再次中断之前进行一次或两次实时重新加载。
我可以看出,每次保存更改时,Angular CLI 都会重新编译我的代码,因为我所要做的就是单击浏览器中的地址栏,然后按 Enter 键即可看到我的更改得到反映。因此,这似乎主要是尝试向浏览器发送刷新命令时失败。
我试图缩小这个问题的范围:
将 ClientApp 文件夹中的 Angular 版本升级到 9.1 或降级到 5.2.0。在这两种情况下,我仍然遇到实时重新加载错误。它似乎与所使用的 Angular 版本无关,而是与我所针对的 .net core 版本相关。
使用命令提示符启动我的 Angular 项目(npm start),然后访问 localhost:4200 - 在这种情况下,每次我将更改保存到 ClientApp 文件夹中的文件时,实时重新加载都会起作用 - 但我已有效地将 .net core 从在这里循环。在这种情况下,我不再使用 ASP.NET Core 来提供我的 Angular SPA。
使用命令提示符启动我的 Angular 项目 (npm start),然后按以下方式编辑我的 Startup.cs:
if (env.IsDevelopment())
{
//spa.UseAngularCliServer(npmScript: "start");
spa.UseProxyToSpaDevelopmentServer("http://localhost:4200");
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,实时重新加载错误仍然存在
还有其他人遇到过这个问题或找到任何解决方法吗?我真的很想在 .net core 3 中开始我的新项目,但我担心它有问题并且目前不能很好地与 Angular 配合使用。
编辑
我不知道它是否相关,但这个问题在 Internet Explorer 中的显示略有不同。在 IE 中,反复调出控制台,反复出现以下脚本错误
Invalid Host/Origin header
[WDS] Disconnected!
Run Code Online (Sandbox Code Playgroud)
使用较旧的 Angular 框架 (5.2.0) 时,这些脚本错误会消失,但只要我使用 ASP.NET Core 3.1,实时重新加载在这种情况下仍然不起作用
还可以使用以下任一方法来防止这些脚本错误
"disableHostCheck": true
(angular.json -> 架构师 -> 服务 -> 选项)
或
"start": "ng serve --configuration es5 --disable-host-check"
(package.json)
但这不会修复 Internet Explorer 中的实时重新加载
看来这个错误已经发布在这里:
https://github.com/dotnet/aspnetcore/issues/11498
用户 Cito 发布了一种有效的解决方案: https://github.com/dotnet/aspnetcore/issues/11498#issuecomment-566928086
要使实时重新加载正常工作,请确保在您的网络服务器设置中启用 SSL。我不确定为什么实时重新加载只能在 .NET Core 3.1 中通过 SSL 运行,但确实如此。
如果有人有任何理论,我很想知道为什么这可以解决问题
归档时间: |
|
查看次数: |
4861 次 |
最近记录: |