Мне сохранили папку изображения в ~/Content/Images/
Я загружаю эти изображения через
<img src="/Content/Images/Image.png" />
Недавно, изображения не загружаются, и я получаю следующие ошибки в своем журнале ошибок. То, что является странным, - то, что некоторая прекрасная загрузка изображений, в то время как другие не загружаются.
У кого-либо есть какая-либо идея что не так с моими маршрутами? Я пропускаю проигнорировать маршрут для/Content/папки?
Я также получаю ту же ошибку для favicon.ico и набора других файлов изображений...
<Fatal> -- 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}");
Вам нужно объявить менее специфичные маршруты к низу:
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 = "" }
);
Но я не думаю, что проблема здесь в этом. Из исключения следует, что веб-сервер, выполняющий это приложение, имеет подстановочное сопоставление с фильтром aspnet_isapi
, что означает, что все файлы будут ассоциированы со средой выполнения ASP.NET, даже статические файлы.
У вас нет routes.RouteExistingFiles = true;
где-нибудь вы?
Если вы посмотрите на представление обозревателя решений, я предполагаю, что ваша папка Content находится в корне проекта вместе с папкой для контроллеров и представлений. Попытка изменить src вашего изображения, как показано ниже ...
<img src="../../Content/Images/Image.png" />
<img src="<%= Url.Content("~/Content/Images/Image.png")%>" alt="does this work?" />