Конфигурация HTTP-запроса для маршрутизации Basi c «одностраничное приложение». net реализация основного веб-приложения - PullRequest
0 голосов
/ 09 июля 2020

Я реализовал простую маршрутизацию одностраничных приложений в . net core веб-приложении, и мне интересно, есть ли лучший способ сделать это, и может ли это привести к непредвиденным проблемам в будущем приложения. Это приложение с низким трафиком c с не более чем 10 пользователями одновременно.

ПРИМЕЧАНИЕ: использовался пустой шаблон веб-приложения, поскольку я хотел, чтобы это было реализовано без MVC маршрутизации

Вот логика реализации;

  1. Обслуживать файл по умолчанию (index. html), если запрос является путем, например, http://mycompany.com/todo/new
  2. Обслуживать все остальные запросы в виде файлов, например, http://mycompany.com/images/image1.jpg

Вот запуск по умолчанию. net шаблон основного веб-приложения;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.Use(async (context, next) =>
        {
            // grab the request path
            var path = context.Request.Path.HasValue ? context.Request.Path.Value : null;
            // check if the request is for a file
            var isAFile = Path.HasExtension(path);
            if (!isAFile)
            {
                // return the default page if its just a path and not a file
                context.Request.Path = "/index.html";
            }
            await next();
        });

        app.UseDefaultFiles();
        app.UseStaticFiles();
    }
}
...