asp.net Url重写 重写后页面图片路径的出问题(服务器控件地址从根目录下开始找的也出问题!);

我用html标记 <imgsrc="<%=ResolveUrl("~/image/123.jpg")%>"/>就没问题;用 &... 我 用html 标记  <img src="<%=ResolveUrl("~/image/123.jpg")%>" /> 就没问题;用   <asp:Image ID="Image1" runat="server" ImageUrl="~/image/123.jpg" />图片地址出问题了;  我看了下那图片的路径是一浏览器地址栏中的上级文件夹开始找 /image/123.jpg  可是我的那地址是重写的呀 ,是不存在的呀! 我也用了 <base href="~/" /> 可是结果还是那样 在浏览器中上级文件夹开始在填加 ”base “中的路径 在加 图片的 ”/image/123.jpg “  ! 求解?????????稍郁闷!不解! 展开
 我来答
cdlgdxgcjsxy
2011-11-22 · TA获得超过238个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:156万
展开全部
你用“~”这个符号,编译器会自己查找根目录,然后解析成相对路径展示出来,举个例子,有这样的结构:
-根
---Image文件夹
----1.jpg
---html文件夹
----a.aspx
如果我在a.aspx里面写了一个图片控件,路径是“~/Image/1.jpg”,编译器会先找到根目录,然后找Image文件夹里面的1.jpg。然后解析出来之后发到客户端的代码是一个相对路径类似"./Image/1.jpg"。这样显示是肯定没问题的。
但是如果你做了url重定向,你的url层级可能就会有变化,比如会多出一层,这样的话,用这个相对路径去查找肯定是找不到东西的,因为相对路径查找是相对于url的那个层级来找文件的。

其实你不用纠结这个,通常情况,链接都应该用绝对路径,其中一个好处就是不会遇到你这种问题。而且当网站改版的时候,也不至于因为路径问题大费周折。

你可以写成 <img src="/image/123.jpg" />或者
<asp:Image ID="Image1" runat="server" ImageUrl="/image/123.jpg" />
应该就问题不大了。
再者,像这种控件“asp:Image”基本没必要用,<img/>就可以,webform是方便,但性能损失有些严重,应尽量避免服务端控件
占占柯柯35
2011-11-26
知道答主
回答量:5
采纳率:0%
帮助的人:3.3万
展开全部
用"./image/123.jpg" ./表示根目录
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式