.net - 如何修复我的网址?

时间:2011-05-25 19:32:57

标签: .net relative-path

我有一个包含以下内容的页脚控件

<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中对等的方法是什么?或者是否有更好的方法来修复这些破坏的相对路径,具体取决于您包含的位置?

3 个答案:

答案 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