我使用的是ASP.NET 4Web forms路由,例如:
routes.MapPageRoute("page-browse", "{Language}/{Label}", "~/Default.aspx")因此webadress可能看起来像:http://localhost/mywebsite/eng/home
在我的网站根目录下,我有一个文件夹“图片”。
当我在我的网站的根目录中时,图像显示可以正常工作,例如通过使用http://localhost/mywebsite/default.aspx
但在使用路由时,它不起作用,因为图像相对url将查看http://localhost/mywebsite/eng/images而不是http://localhost/mywebsite/images
有没有办法使用ASP.NET 4路由机制来防止这种情况?或者是使用图像的绝对url的唯一方法?
发布于 2011-03-03 00:35:47
你可以尝试两件事。
1)设置RouteExistingFiles为false。这将停止在服务器匹配的已存在的任何文件上进行路由。只有与路由匹配的“虚拟”urls才会被实际路由:
routes.RouteExistingFiles = false;2)使用StopRoutingHandler路由。例如,这将停止所有jpgs上的路由。您也可以将其设置为忽略整个图像目录。
routes.Add(new Route("*\.jpg", new StopRoutingHandler()));发布于 2011-03-06 02:59:18
IHttpHandler实现,该实现从虚拟路径定位文件的绝对路径,并将其呈现为文件流。IRouteHandler实现,该实现将返回我刚才描述的http处理程序,或者使用缺省路由机制将路由处理程序用于路由中。发布于 2010-07-09 23:36:50
你是如何引用你的图片的?您应该能够使用指向站点根目录的虚拟路径,使用前缀'/‘(除非我完全误解了这个问题)
例如:
<img src="/mywebsite/images/image.jpg" />https://stackoverflow.com/questions/3214104
复制相似问题