Я разрабатываю три веб-приложения, которые являются частью более крупной системы. Это одностраничные приложения с API, и поэтому у меня есть подстановочный маршрут для действий, не связанных с API, который указывает на мой основной контроллер.
Для двух из этих приложений это работает нормально, но для третьего перенаправление не работает, и я просто получаю 404 при попытке получить доступ к внешнему маршруту. Насколько я могу судить, установка идентична, и я совершенно озадачен тем, почему она не работает.
Я использую скриншоты, а не фрагменты кода, чтобы я мог показывать установку рядом (работа слева, не работа справа).
Как видите, ключевые разделы кода идентичны в обоих приложениях, и все же один работает, а другой нет.
Что я пропустил? Где еще мне посмотреть? И любое руководство о том, как я могу отладить это, будет с благодарностью.
.csproj
Startup.cs
Это ключевой бит кода, который, как вы можете видеть, идентичен в обоих местах:
app.UseMvc(routes =>
{
routes.EnableDependencyInjection();
routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
});
app.MapWhen(x => !x.Request.Path.Value.StartsWith("/api", StringComparison.OrdinalIgnoreCase), builder =>
{
builder.UseMvc(routes =>
{
routes.MapRoute("spa-fallback", "{*url}", new { controller = "Home", action = "Index" });
});
});
Program.cs
Web.config