静态图像找不到控制器路径? asp.net mvc路由问题?

我有一个图像文件夹存储在〜/ Content / Images /

我通过加载这些图像

 

最近,图像没有加载,我在错误日志中收到以下错误。 奇怪的是,有些图像加载正常,而其他图像无法加载。

任何人都知道我的路线有什么问题吗? 我错过了/ Content /文件夹的忽略路由吗?

我也为favicon.ico和一堆其他图像文件得到了同样的错误……

  -- 3/25/2010 2:32:38 AM -- System.Web.HttpException: The controller for path '/Content/Images/box_bottom.png' could not be found or it does not implement IController. at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(Type controllerType) at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

我目前的路线如下:

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults ); routes.MapRoute( "ControllerDefault", // Route name "{controller}/project/{projectid}/{action}/{searchid}", // URL with parameters new { controller = "Listen", action = "Index", searchid = "" } // Parameter defaults ); 

谢谢!

我会在第一个下面插入另一个被忽略的路由。

 routes.IgnoreRoute("Content/Images/{*pathInfo}"); 

如果您查看解决方案资源管理器视图,我猜测您的内容文件夹位于项目的根目录中,同时还有控制器和视图的文件夹。 尝试修改你的图像src,如下所示……

  
 " alt="does this work?" /> 

您需要向底部声明不太具体的路线:

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "ControllerDefault", "{controller}/project/{projectid}/{action}/{searchid}", new { controller = "Listen", action = "Index", searchid = "" } ); routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" } ); 

但我认为这不是问题所在。 从例外情况看,执行此应用程序的Web服务器似乎具有aspnet_isapifilter的通配符映射,这意味着所有文件都将与ASP.NET运行时甚至静态文件相关联。

你没有routes.RouteExistingFiles = true; 你身处某个地方?

... could not be found or it does not implement IController例外... could not be found or it does not implement IController不必出错。 实际上/favicon.ico没有解析为控制器所以这意味着下一个模块(或它是处理程序?)应该尝试处理请求。 所以在某种程度上它是一个“预期的例外”。

问题是记录此exception并阻塞日志。 使用log4net时,将以下元素添加到默认的appender应该保留它: