网站的路径为:D:\...CustomerManagerSystem\在某一页面如果使用<a href="../UserManager.aspx">用户管理</a>,本机测试则打开超链接出现乱码,而没有链接到指定的页面上。但是如果我用<a href="UserManager.aspx">用户管理</a>就能正确跳转。请问:如果使用<a href="UserManager.aspx">用户管理</a>的话(同级目录),如果不在本机,而是客户端,是否能正确显示网页?
我还是不太明白相对路径的用法。

解决方案 »

  1.   

    相对路径的简单理解就是,相对于当前页面的路径,比如a页面和b页面同级,那在a页面想打开b页面就用
    <a   href="UserManager.aspx">b </a>;如果b在a的上一级则需要加“../”退出一级。自己可以使用多文件测试一下。
      

  2.   

    谢谢楼上,但是:网站中包括一个Image文件夹用于存放网页使用的图片, 在网页中使用<img src="Images/title.gif" />能正常显示图片,但如果使用 <img src="~/Images/title.gif" />就不能正常显示了。不知道为什么。请各位解答一下。
      

  3.   

    请问:如果使用 <a   href="UserManager.aspx"> 用户管理 </a> 的话(同级目录),如果不在本机,而是客户端,是否能正确显示网页? 
    我还是不太明白相对路径的用法。
    ------------------------------------------
    楼主理解有误差,这里并不区分客户端和服务端。
    谢谢楼上,但是:网站中包括一个Image文件夹用于存放网页使用的图片,   在网页中使用 <img   src="Images/title.gif"   /> 能正常显示图片,但如果使用   <img   src="~/Images/title.gif"   /> 就不能正常显示了。不知道为什么。请各位解答一下。
    ------------------------------------------
    ~ 是服务端代码,IE根本不认识它的。
    如果你实在觉得相对路径麻烦和不好区分,可用绝对路径:<img   src="/Images/title.gif"   /><!-- /代表站点根路径 -->
      

  4.   

    假设在c:/RootPath/CustomerManagerSystem/中有页面Default.aspx,该页面中有以下两个超连接<a   href="../UserManager.aspx"> <!--表示链接到c:/RootPath/UserManager.aspx-->
    <a   href="UserManager.aspx"> <!--表示链接到c:/RootPath/CustomerManagerSystem/UserManager.aspx-->
    网站发布到网络上去也能正确解读路径。相对路径:是相对于当前应用程序文件路径而言的。
    例如上面的“../UserManager.aspx”。
    因为Default.aspx文件目录是c:/RootPath/CustomerManagerSystem/,“..”表示当前目录上一层目录。
    所以“../UserManager.aspx”的绝对路径为:“c:/RootPath/CustomerManagerSystem/../UserManager.aspx”(等价于c:/RootPath/UserManager.aspx)。
    方法:判断相对路径正确与否,只要在前面加上当前目录形成绝对路径,然后再看能否按照该绝对路径找到要引用的文件。相对绝对路径:是相对于网站根目录而言的。在Asp.net 中用“~”或者<%=Server.ApplicationPath%>
    ~:必须有runat="Server" 属性配合使用,服务器将其解读为网站的根目录
    <%=Server.ApplicationPath%>:解读方法及结果都同~一样,但是在无法使用runat="Server"时,使用它代替~
    例如:
    这里我假设UserManager.aspx放在网站根目录下面
    <a href="~/UserManager.aspx" runat="Server"> 
    <a href=<%=Server.ApplicationPath%>/UserManager.aspx> 
    两者的结果是一致的
      

  5.   

    相对绝对路径:是相对于网站根目录而言的。在Asp.net   中用“~”或者 <%=Server.ApplicationPath%> 
    ~:必须有runat="Server"   属性配合使用,服务器将其解读为网站的根目录 
    <%=Server.ApplicationPath%> :解读方法及结果都同~一样,但是在无法使用runat="Server"时,使用它代替~ 
    例如: 
    这里我假设UserManager.aspx放在网站根目录下面 
    <a   href="~/UserManager.aspx"   runat="Server">   
    <a   href= <%=Server.ApplicationPath%> /UserManager.aspx>   
    两者的结果是一致的 
    我推荐一致使用这种方法,有意想不到的方便,其他的各种方法都会遇到各种问题,尤其在使用母板页的时候