Dlaczego pliki CSS i JS omijają trasy Asp.Net MVC?
Otrzymałem prototypową aplikację zbudowaną z Asp.Net MVC4. Obecnie zastępuje domyślną fabrykę kontrolerów niestandardową fabryką za pomocą NInject, ServiceLocator i wszystkich.
Problem polega na tym, że zastępując domyślną fabrykę kontrolerów, żądania do plików JS są traktowane tak, jakby były uzasadnionym żądaniem dla kontrolera i akcji.
Tak więc, patrząc na domyślny szablon tworzony przez Visual Studio, konfiguracja trasy wygląda tak:
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 }
);
}
Po sprawdzeniu tego, zadaję sobie pytanie: w jaki sposób zapytanie do „/Scripts/jquery.js” nie jest interpretowane przez Asp.Net MVC? To znaczy, dlaczego nie uważa, że „Skrypt” jest kontrolerem, a „jquery.js” to akcja?
Ponieważ projekt działa, jeśli wyłączę nadpisanie fabryczne kontrolera, mogę tylko założyć, że domyślna fabryka jest odpowiedzialna za ten rodzaj kontroli. A to oznaczałoby, że „/Scripts/jquery.js” są rzeczywiście przekazywane do fabryki kontrolerów, o czym tak naprawdę nie wiedziałem.
Czy ktoś mógłby rzucić na to trochę światła?
Jakiego rodzaju leczenie powinno się robić, gdy omija się fabrykę kontrolerów, aby uniknąć takich problemów?