У меня есть .net core 2.2 SPA, использующий реагирование для внешнего интерфейса. На стороне реакции я делаю GET-вызов к бэкэнду, просто используя href.
<a href={`http://localhost:5004/api/Reports?team=${this.state.teamName}&project=${this.state.projectName}`} class="button">Submit</a>
Когда я отлаживаю приложение из Visual Studio, маршрутизация обрабатывается правильно, и он вызывает бэкэнд-контроллер и загружаетфайл.
Когда я публикую приложение как автономный exe-файл, кажется, что реагирующее приложение перехватывает маршрут, поэтому он отображает URL-адрес резервного SPA, когда нажимается кнопка и когда я пытаюсь выполнить этот вызов API. непосредственно в браузере.
Я пытался удалить раздел MapSpaFallbackRoute из app.UseMVC, а также передать полный 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?