ASP.NET 4 Web表单路由图像

Mar*_*ter 1 asp.net routing asp.net-routing asp.net-4.0

我正在使用ASP.NET 4 Web表单路由,例如:

routes.MapPageRoute("page-browse", "{Language}/{Label}", "~/Default.aspx")
Run Code Online (Sandbox Code Playgroud)

所以webadress可能看起来像: http://localhost/mywebsite/eng/home

在我的网站的根目录中,我有一个文件夹"Images".

当我在我的网站的根目录时,例如通过使用,图像显示有效 http://localhost/mywebsite/default.aspx

但是当使用路由时它不起作用,因为图像相对URL将会看http://localhost/mywebsite/eng/images而不是http://localhost/mywebsite/images

有没有办法使用ASP.NET 4路由机制来防止这种情况?或者是使用绝对网址到图像的唯一方法?

Dan*_*rak 5

你可以尝试两件事.

1)将RouteExistingFiles设置为false.这将停止在服务器匹配的任何文件上路由已存在.实际上只会路由匹配路由的"虚拟"网址:

routes.RouteExistingFiles = false;
Run Code Online (Sandbox Code Playgroud)

2)使用StopRoutingHandler路线.例如,这将停止所有jpgs上的路由.您也可以将其设置为忽略整个图像目录.

routes.Add(new Route("*\.jpg", new StopRoutingHandler()));
Run Code Online (Sandbox Code Playgroud)