приложение angular netcore перенаправляет в /index.html вместо / - PullRequest
0 голосов
/ 01 июня 2019

У меня есть веб-сайт Angular 7 + Asp.Net Core 2.2.

Когда пользователи вводят URL: domain.com/, они перенаправляются на domain.com/index.html,

Затем, когда приложение angularпинки в URL возвращаются к domain.com/.

Как я могу предотвратить этот переход к index.html и заставить его выглядеть так: domain.com/ от начала до конца?

я перенаправляю пользователя в угловое приложение с помощью этого кода в классе Startup.cs (обратите внимание, что я использую /, а не /index.html, и он все еще перенаправляет на /.index.html):

app.Use(async (context, next) =>
{
    await next();
    if (context.Response.StatusCode == 404 &&
    !Path.HasExtension(context.Request.Path.Value) &&
    !context.Request.Path.Value.StartsWith("/api/") &&
    {
        context.Request.Path = "/";
        await next();
    }
});

1 Ответ

0 голосов
/ 17 июля 2019

Это может или не может решить вашу проблему, но у меня была та же проблема.Для меня это было вызвано стандартным промежуточным ПО поколения swagger в Startup.cs:

app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", $"{nameof(SharingService)} API V1");
    c.RoutePrefix = "";
});

Это промежуточное ПО вызывает перенаправление с / на /index.html, чтобы показать API-код swagger.

Чтобы исправить это, я добавил app.UseFileServer() перед app.UseSwagger(), который включает использование статических файлов и файлов по умолчанию.Это обслуживает содержимое файла без , направляющего браузер первым.

Я также обновил конфигурацию сваггера, установив c.RoutePrefix = "api", чтобы страница сваггера была доступна в /api (а не в корне).

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