Я реализовал простую маршрутизацию одностраничных приложений в . net core веб-приложении, и мне интересно, есть ли лучший способ сделать это, и может ли это привести к непредвиденным проблемам в будущем приложения. Это приложение с низким трафиком c с не более чем 10 пользователями одновременно.
ПРИМЕЧАНИЕ: использовался пустой шаблон веб-приложения, поскольку я хотел, чтобы это было реализовано без MVC маршрутизации
Вот логика реализации;
- Обслуживать файл по умолчанию (index. html), если запрос является путем, например, http://mycompany.com/todo/new
- Обслуживать все остальные запросы в виде файлов, например, 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();
}
}