Возможно, вам следует переписать ваши ссылки на изображения для.
<img src="<%= ResolveUrl("~/images/a.png") %>" />
Таким образом, вам не нужно, чтобы ваши маршруты обрабатывали изображения.
ОБНОВЛЕНИЕ Как вы это сделаете, добавив эту запись в свой RouteTable
routes.Add("images", new Route("{*path}", null,
new RouteValueDictionary(new { path = ".*/images/.*"}),
new ImageRouteHandler()));
Теперь вам нужно создать ImageRouteHandler и ImageHandler
public class ImageRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
//you'll need to figure out how to get the physical path
return new ImageHandler(/* get physical path */);
}
}
public class ImageHandler : IHttpHandler
{
public string PhysicalPath { get; set; }
public ImageHandler(string physicalPath)
{
PhysicalPath = physicalPath;
}
public void ProcessRequest(HttpContext context)
{
context.Response.TransmitFile(PhysicalPath);
}
public bool IsReusable
{
get { return true; }
}
}
Это также не выполняет никакого кэширования.Вы можете проверить System.Web.StaticFileHandler в Reflector для обработчика, который обрабатывает статические файлы для приложения Asp.Net для более полной реализации.