首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET 4Web forms路由图像

ASP.NET 4Web forms路由图像
EN

Stack Overflow用户
提问于 2010-07-09 23:29:13
回答 3查看 3.5K关注 0票数 1

我使用的是ASP.NET 4Web forms路由,例如:

代码语言:javascript
复制
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的唯一方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-03 00:35:47

你可以尝试两件事。

1)设置RouteExistingFiles为false。这将停止在服务器匹配的已存在的任何文件上进行路由。只有与路由匹配的“虚拟”urls才会被实际路由:

代码语言:javascript
复制
routes.RouteExistingFiles = false;

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

代码语言:javascript
复制
routes.Add(new Route("*\.jpg", new StopRoutingHandler()));
票数 5
EN

Stack Overflow用户

发布于 2011-03-06 02:59:18

  1. 创建一个IHttpHandler实现,该实现从虚拟路径定位文件的绝对路径,并将其呈现为文件流。
  2. 如果文件具有图像扩展名,则创建一个IRouteHandler实现,该实现将返回我刚才描述的http处理程序,或者使用缺省路由机制将路由处理程序用于路由中。
票数 1
EN

Stack Overflow用户

发布于 2010-07-09 23:36:50

你是如何引用你的图片的?您应该能够使用指向站点根目录的虚拟路径,使用前缀'/‘(除非我完全误解了这个问题)

例如:

代码语言:javascript
复制
<img src="/mywebsite/images/image.jpg" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3214104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档