Почему файлы CSS и JS обходят маршруты Asp.Net MVC?
Я получил прототип приложения, созданного с использованием Asp.Net MVC4. В настоящее время он заменяет фабрику контроллера по умолчанию на собственную, используя NInject, ServiceLocator и все.
Проблема заключается в том, что при замене фабрики контроллера по умолчанию запросы к файлам JS обрабатываются так, как если бы это был законный запрос на контроллер и действие.
Итак, глядя на шаблон по умолчанию, созданный Visual Studio, конфигурация маршрута выглядит следующим образом:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Посмотрев это, я спрашиваю себя: почему запрос к «/Scripts/jquery.js» не интерпретируется Asp.Net MVC? Я имею в виду, почему он не думает, что «Script» - это контроллер, а «jquery.js» - это действие?
Поскольку проект работает, если я отключаю переопределение фабрики контроллера, я могу только предположить, что фабрика по умолчанию ответственна за такую проверку. И это будет означать, что «/Scripts/jquery.js» действительно передается фабрике контроллеров, чего я на самом деле не знал.
Может ли кто-нибудь пролить свет на это?
Какую обработку следует предпринять при переопределении фабрики контроллеров, чтобы избежать таких проблем?