我有一个包含以下内容的页脚控件
<img src="images/img1.gif" />
<img src="images/img1.gif" />
然后我有两个页面,包括它,如此
//Default.aspx
<%@ Register Src="~/Controls/Footer.ascx" TagPrefix="his" TagName="SiteFooter"%>
<his:SiteFooter ID="SiteFooter" runat="server" />
//electronics/Default.aspx
<%@ Register Src="~/Controls/Footer.ascx" TagPrefix="his" TagName="SiteFooter"%>
<his:SiteFooter ID="SiteFooter" runat="server" />
当我在electronics / Default.aspx中查看页面时,图像被破坏,因为images目录是一个目录。该项目是通过虚拟路径提供的,因此网页将显示网址,例如
http://mysite.com/virtualpath/Default.aspx
http://mysite.com/virtualpath/electronics/Default.aspx
在PHP中,我会使用<?=PROJECT_URL ?>
为这些页脚图像添加前缀。在.net中对等的方法是什么?或者是否有更好的方法来修复这些破坏的相对路径,具体取决于您包含的位置?
答案 0 :(得分:1)
http://msdn.microsoft.com/en-us/library/ms178116.aspx:
<asp:Image runat="server" id="Image1" ImageUrl="~/images/img1.gif" />
<asp:Image runat="server" id="Image2" ImageUrl="~/images/img2.gif" />
或
<img src="./images/img1.gif" />
<img src="./images/img2.gif" />
或
<img src="/images/img1.gif" />
<img src="/images/img2.gif" />
我发现以上其中一项始终有效。
答案 1 :(得分:0)
快速解决方法是在进入images文件夹之前使用..上传一个目录:
<img src="../images/img1.gif" />
答案 2 :(得分:0)
使img
成为一个aspx控件(添加runat="server"
)应允许您使用~
- 试试这个 -
<img runat="server" src="~/images/img1.gif" />
<img runat="server" src="~/images/img1.gif" />
有关详细信息,请参阅URLs in Master Pages