我有一个.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运行时行为不同?
下面有同样的问题。我也尝试过.mapWhen,并说何时路由不是以/ api开头以路由到后备...无法工作。