。发布应用程序时的.Net Core React SPA路由问题

问题描述 投票:1回答:1

我有一个.net核心2.2 SPA,在前端使用react。在反应方面,我仅使用href即可对后端进行GET调用。

<a href={`http://localhost:5004/api/Reports?team=${this.state.teamName}&project=${this.state.projectName}`} class="button">Submit</a>

当我从Visual Studio调试应用程序时,路由已正确处理,它会调用后端控制器并下载文件。

[当我将应用程序发布为自包含exe时,似乎React应用程序正在拦截路由,因此当单击按钮时以及当我尝试直接在浏览器中进行api调用时,它会显示SPA Fallback URL。] >

我尝试从app.UseMVC移除MapSpaFallbackRoute部分,并传递完整的URL和Partial,无论哪种方式都无法正确地路由到控制器。

这里是启动中的路由

app.UseMvc(routes =>
      {
        routes.MapRoute(
                  name: "default",
                  template: "{controller}/{action=Index}/{id?}");

        routes.MapSpaFallbackRoute(
          name: "spa-fallback",
          defaults: new { controller = "Home", action = "Index" });
      });

以及UseSpa部分

app.UseSpa(spa =>
      {
        spa.Options.SourcePath = "ClientApp";

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

什么导致路由在发布时与通过Visual Studio运行时行为不同?

我有一个.net核心2.2 SPA,在前端使用react。在反应方面,我仅使用href即可对后端进行GET调用。

asp.net-mvc reactjs .net-core single-page-application
1个回答
0
投票

下面有同样的问题。我也尝试过.mapWhen,并说何时路由不是以/ api开头以路由到后备...无法工作。

© www.soinside.com 2019 - 2024. All rights reserved.