ASP.NET知识点:母版页的路径问题

一、ASP.NET中常见的路径有六种写法:
<!--绝对路径:全地址路径,这里的MyWeb是已经建好的指向网站Web的虚拟目录-->
<asp:Image ID="Image1" runat="server" ImageUrl="http://127.0.0.1/MyWeb/Images/1.jpg"/>

<!--全地址路径,如果是公网IP的话,在任何网站引用都可以。而如果只是在本网站内引用的话,则可以进行省略-->


<!--绝对路径:全地址路径省略写法,“/”表示根路径,用“/Web”省略了上面的“http://127.0.0.1/MyWeb”-->
<asp:Image ID="Image2" runat="server" ImageUrl="/Web/Images/1.jpg"/>

<!--绝对路径:全地址路径进一步省略写法,用“~”进一步省略了上面的“/Web”-->
<asp:Image ID="Image3" runat="server" ImageUrl="~/Images/1.jpg"/>


<!--相对路径:“.”表示当前文件所在目录-->
<asp:Image ID="Image4" runat="server" ImageUrl="./Images/1.jpg"/>

<!--相对路径:等同于上面的相对路径,省略写法,省略了“./”-->
<asp:Image ID="Image5" runat="server" ImageUrl="Images/1.jpg"/>

<!--相对路径:“..”表示当前文件所在目录的上一级目录-->
<asp:Image ID="Image6" runat="server" ImageUrl="../Web/Images/1.jpg"/>



“../”可以复用,如果你的网页在某个文件夹里,可用下面的形式:

<asp:Image ID="Image1" runat="server" ImageUrl="../../Web/Images/1.jpg"/>

二、母版页的路径问题

  在母版页中,如果是ASP控件,它的相对路径是相对母版页的,不会出什么问题;而如果是HTML控件,它的相对路径则是相对于引用页的,引用页如果在不同的文件夹中,就会出问题。

解决这个问题,我们可以

  1:改成绝对路径,

  2:将HTML控件替换成ASP控件,

  3:采用Page.ResolverUrl方法,如 <img svr='<%=Page.ResolverUrl("~/MasterPager/Logo.gif")%>' alt="logo">

  建议使用绝对路径,"~/"的形式。








原文地址:https://www.cnblogs.com/WestGarden/p/3138383.html