深层链接时 ASP.NET Core 路由忽略 Angular 5 路由调用

Ral*_*ine 3 asp.net-core angular

我正在运行 ASP.NET Core MVC 来进行 API 调用。路由: api/* 还运行 Angular 5.x 及其自己的路由模型。

运行 localhost 效果很好(Core 运行端口 5000 和 Angular 4200)。但当该项目在 Azure 上发布时,所有内容都在端口 443 上运行。

当应用程序发布时,所有路由都会经过 ASPNET Core 路由,在深度链接时会导致 404 。

如何配置 ApplicationBuilder 将 Angular 路由重定向到 Angular?

更新:

API 链接:

  • /api/事件/{id}
  • /api/事件/{id}/事物

角度链接:

  • / --> (主页)
  • /事件/{键}
  • /事件/{键}/事物

当从主页 (/) 页面移动并使用角度路由时,用户会重定向到有效的 /event/{key}。刷新 (F5) 时,API 路由启动并返回 404(因为 api 无法理解)。

更新2:

这是修复:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseMvc();                             // <-- moved to top (was on bottom)
        app.UseStatusCodePagesWithReExecute("/"); // <-- added to redirect to angular
        app.UseDefaultFiles();
        app.UseStaticFiles();
    }
Run Code Online (Sandbox Code Playgroud)

Ral*_*ine 5

添加app.UseStatusCodePagesWithReExecute()修复了路由问题。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseMvc();                             // <-- moved to top (was on bottom)
    app.UseStatusCodePagesWithReExecute("/"); // <-- added to redirect to angular
    app.UseDefaultFiles();
    app.UseStaticFiles();
}
Run Code Online (Sandbox Code Playgroud)