【问题标题】:.net - how to fix my urls?.net - 如何修复我的网址?
【发布时间】:2011-05-25 19:32:56
【问题描述】:

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

<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" />

当我查看电子/Default.aspx 中的页面时,图像已损坏,因为图像目录是上一个目录。该项目是从虚拟路径提供的,因此网页将显示带有诸如

之类的 url
http://mysite.com/virtualpath/Default.aspx
http://mysite.com/virtualpath/electronics/Default.aspx

在 PHP 中,我会在这些页脚图像前加上 &lt;?=PROJECT_URL ?&gt;。 .net 中的等效方法是什么?或者是否有更好的方法来修复这些损坏的相对路径,具体取决于您包含的位置?

【问题讨论】:

    标签: .net relative-path


    【解决方案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" />
    

    我发现上述方法之一始终有效。

    【讨论】:

      【解决方案2】:

      img 设为aspx 控件(添加runat="server")应该允许您使用~ - 试试这个 -

      <img runat="server" src="~/images/img1.gif" />
      <img runat="server" src="~/images/img1.gif" />
      

      详情请见URLs in Master Pages

      【讨论】:

        【解决方案3】:

        快速解决方法是使用 .. 在进入图像文件夹之前上一个目录:

        <img src="../images/img1.gif" />
        

        【讨论】:

        • 但这会导致 Default.aspx 上的图像损坏,即使它修复了电子/Default.aspx
        • 是的,在这种情况下,我同意 Scott 的回答:
        猜你喜欢
        • 2014-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-29
        • 2016-05-25
        • 2019-01-06
        • 2015-12-24
        • 2013-08-15
        相关资源
        最近更新 更多