Por que os arquivos CSS e JS ignoram as rotas do Asp.Net MVC?
Eu recebi um protótipo de aplicativo construído com o Asp.Net MVC4. Atualmente, ele está substituindo a fábrica do controlador padrão por um personalizado usando NInject, ServiceLocator e todos.
O problema é que, ao substituir a fábrica do controlador padrão, as solicitações para arquivos JS estão sendo tratadas como se fosse uma solicitação legítima para um controlador e uma ação.
Portanto, olhando para o modelo padrão criado pelo Visual Studio, a configuração de rota é semelhante a:
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 }
);
}
Depois de olhar isso, estou me perguntando: como é que uma solicitação para "/Scripts/jquery.js" não é interpretada pelo Asp.Net MVC? Quero dizer, porque não acha que "Script" é um controlador e "jquery.js" é uma ação?
Como o projeto funciona se eu desabilitar a substituição de fábrica do controlador, só posso assumir que a fábrica padrão é a responsável por esse tipo de verificação. E isso significaria que um "/Scripts/jquery.js" é realmente passado para a fábrica do controlador, o que é algo que eu realmente não sabia.
Alguém poderia lançar alguma luz sobre isso?
Que tipo de tratamento deve-se fazer ao substituir a fábrica do controlador para evitar tais problemas?