.NET Core 2.2 with Angular 12 - 在我重新编译之前网站不会加载
.NET Core 2.2 with Angular 12 - Site does not load until I cause a recompilation
我们有一个基于 .NET Core 2.2 和 Angular 8 的网站。我一直在将其迁移到 Angular 12,该网站现在可以正常运行,只有一个奇怪的问题。当我 运行 该站点最初将永远无法工作,直到我去 angular 项目中保存一个文件导致它重新编译。
如果我只是 运行 它那么网站将加载 50 秒然后显示 The Angular CLI process did not start listening for requests within the timeout period of 50 seconds
。但是我可以在输出 window.
中看到该站点仅在 ~7 秒后就已成功编译
在Startup.ConfigureServices()
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/dist";
});
在Startup.Configure()
app.UseSpa(spa =>
{
spa.Options.DefaultPageStaticFileOptions = ConfigDefaults.DefaultStaticFileOptions;
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
如果我进入任何打字稿文件并保存它然后它重新编译然后如果我刷新页面工作正常。
是否需要任何额外的东西才能使 angular 12 正常工作?
检查 the code 后,似乎 UseAngularCliServer
最终等待文本“在 http...上打开浏览器”出现在标准输出上以确定 angular 站点准备好了。出于某种原因,虽然似乎这条线正在输出到错误流而不是我的标准输出流。我认为这与我在构建过程中输出了一些 sass 警告有关。
我向我的 package.json
添加了一个新脚本以将错误流重定向到标准输出:"start:asp": "powershell ng serve 2>&1",
并更新了 Startup.cs
以使用此脚本 spa.UseAngularCliServer(npmScript: "start:asp");
现在看来在启动时正确加载。
我认为这是中间件的问题,而不是 angular,因为当我 运行 ng serve
手动将此行转到正确的流时。
更新
我发现升级到 .NET 5 后问题似乎停止了,所以我猜这是 angular 和 .NET 组合的问题。上述解决方法似乎有所帮助,但并未完全解决。
我们有一个基于 .NET Core 2.2 和 Angular 8 的网站。我一直在将其迁移到 Angular 12,该网站现在可以正常运行,只有一个奇怪的问题。当我 运行 该站点最初将永远无法工作,直到我去 angular 项目中保存一个文件导致它重新编译。
如果我只是 运行 它那么网站将加载 50 秒然后显示 The Angular CLI process did not start listening for requests within the timeout period of 50 seconds
。但是我可以在输出 window.
在Startup.ConfigureServices()
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/dist";
});
在Startup.Configure()
app.UseSpa(spa =>
{
spa.Options.DefaultPageStaticFileOptions = ConfigDefaults.DefaultStaticFileOptions;
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
如果我进入任何打字稿文件并保存它然后它重新编译然后如果我刷新页面工作正常。
是否需要任何额外的东西才能使 angular 12 正常工作?
检查 the code 后,似乎 UseAngularCliServer
最终等待文本“在 http...上打开浏览器”出现在标准输出上以确定 angular 站点准备好了。出于某种原因,虽然似乎这条线正在输出到错误流而不是我的标准输出流。我认为这与我在构建过程中输出了一些 sass 警告有关。
我向我的 package.json
添加了一个新脚本以将错误流重定向到标准输出:"start:asp": "powershell ng serve 2>&1",
并更新了 Startup.cs
以使用此脚本 spa.UseAngularCliServer(npmScript: "start:asp");
现在看来在启动时正确加载。
我认为这是中间件的问题,而不是 angular,因为当我 运行 ng serve
手动将此行转到正确的流时。
更新
我发现升级到 .NET 5 后问题似乎停止了,所以我猜这是 angular 和 .NET 组合的问题。上述解决方法似乎有所帮助,但并未完全解决。