为什么 Angular + ASP.NET 核心 SPA 无法在网络 Ubuntu 虚拟机上运行?

Why Angular + ASP.NET Core SPA is not working on network Ubuntu VM?

我正在将 ASP.NET 5,Angular 11,SPA 部署到 Ubuntu 20.04 本地 VM 上的网络位置。我将该应用程序发布为 linux 本机自包含。 Web API 和客户端应用程序具有相同的 url/port,它正在开发机器上运行。

我在 appsettings.json 中有这个:

"ApplicationUrl": "http://ubuntu1:5000",

"Kestrel": {
  "Endpoints": {
    "Http": {
      "Url": "http://192.168.0.120:5000"
    },
  }
},

我可以看到带有应用程序加载消息的 index.html 页面,但是 问题是 angular 部分没有启动。有没有我可以在某处查看的日志? 网络应用程序本身似乎工作正常,因为我从 Postman 测试了网络 api。

我在.net代码中有:

services.AddSpaStaticFiles(configuration =>
        {
            configuration.RootPath = "ClientApp/dist";
        });
//...
app.UseSpa(spa =>
        {


            spa.Options.SourcePath = "ClientApp";

            if (env.IsDevelopment())
            {
                spa.UseAngularCliServer(npmScript: "start");                    
            }
        });

同样在 /etc/systemd/system/modulo.service 中我有:

[Unit]
Description=Modulo ASP .NET Web Application
[Service]
WorkingDirectory=/var/modulo
ExecStart=/var/modulo/Modulo
Restart=always
RestartSec=10
SyslogIdentifier=modulo-app
User=paul (I also tried with www-data)
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target

我在 Ubuntu 重新启动服务时没有出现任何错误。状态为活动状态 (运行)。

看来我还得用:

        app.UseStaticFiles(new StaticFileOptions
        {
            FileProvider = new PhysicalFileProvider(
                Path.Combine(Directory.GetCurrentDirectory(), "ClientApp", "dist")),
            RequestPath = ""
        });