我有一个使用React作为前端的.NET Core 2.2 SPA。在React端,我使用href简单地进行后端的GET调用。
当我从Visual Studio调试应用程序时,路由处理正确,并调用后端控制器下载文件。
当我将应用程序发布为自包含的exe文件时,似乎React应用程序拦截了路由,因此在单击按钮时显示SPA回退URL,并且当我尝试直接在浏览器中进行该API调用时也是如此。
我已经尝试从app.UseMVC中删除MapSpaFallbackRoute部分,以及传递完整URL和部分URL,但无论哪种方式都无法正确路由到控制器。
以下是启动时的路由设置。
在发布与通过Visual Studio运行时,路由表现不同的原因是什么?
<a href={`http://localhost:5004/api/Reports?team=${this.state.teamName}&project=${this.state.projectName}`} class="button">Submit</a>
当我从Visual Studio调试应用程序时,路由处理正确,并调用后端控制器下载文件。
当我将应用程序发布为自包含的exe文件时,似乎React应用程序拦截了路由,因此在单击按钮时显示SPA回退URL,并且当我尝试直接在浏览器中进行该API调用时也是如此。
我已经尝试从app.UseMVC中删除MapSpaFallbackRoute部分,以及传递完整URL和部分URL,但无论哪种方式都无法正确路由到控制器。
以下是启动时的路由设置。
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运行时,路由表现不同的原因是什么?