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 “ ! 求解?????????稍郁闷!不解!
展开
2个回答
展开全部
你用“~”这个符号,编译器会自己查找根目录,然后解析成相对路径展示出来,举个例子,有这样的结构:
-根
---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是方便,但性能损失有些严重,应尽量避免服务端控件
-根
---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是方便,但性能损失有些严重,应尽量避免服务端控件
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询