ASP. NET Core + React - SPA отображается при попытке доступа к API - PullRequest
0 голосов
/ 31 марта 2020

Я занимаюсь разработкой ASP. NET Базового приложения с React + Redux, используя шаблон проекта Visual Studio 2019 по умолчанию. SPA должен запускаться, когда пользователь переходит на «/», но он отображает все, что я набираю в URL, включая конечные точки API с глаголом GET.

Я добавил некоторую конфигурацию при запуске, но это в основном то же самое, и я ничего не перемещал:

if (env.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseWebSockets();

app.UseRouting();
app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller}/{action=Index}/{id?}");
});

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

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

У меня есть API внутри контроллера LinkToUtilsController (который украшен атрибутом [Route("api/[controller]/")]), целью которого является получение идентификатора ссылки и перенаправляет на внешний ресурс (или возвращает ошибку HTTP). Конечная точка - http://localhost/api/linktoutils/redirect?linkId=STEP, но когда я открываю ее из браузера, она показывает приложение ReactJS (которое даже не использует маршрутизацию и никогда не понадобится). Странно то, что это работает, если я заставлю перезагрузить страницу, нажав CTRL + F5.

Это происходит либо с локального хоста, либо с производства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...