有相对于​​root的链接?

时间:2011-04-05 23:01:43

标签: html location-href

是否有办法让页面上的所有链接都相对于根目录?

例如,在www.example.com/fruits/apples/apple.html我可以有一个链接说:

<a href="fruits/index.html">Back to Fruits List</a>

此链接是指向www.example.com/fruits/apples/fruits/index.html还是www.example.com/fruits/index.html?如果是第一个,有没有办法让它指向第二个?

8 个答案:

答案 0 :(得分:259)

根相对网址以/字符开头,看起来像<a href="/directoryInRoot/fileName.html">link text</a>

您发布的链接:<a href="fruits/index.html">Back to Fruits List</a>链接到位于名为fruits的目录中的html文件,该目录与显示此链接的html页面位于同一目录中。

要使其成为根相对网址,请将其更改为:

<a href="/fruits/index.html">Back to Fruits List</a>

编辑以回复问题,在评论中,来自OP:

  

这样做/将使它相对于www.example.com,是否有一种方法来指定根是什么,例如,如果我希望根在www.example.com/fruits www.example.com /fruits/apples/apple.html?

是的,在hrefsrc属性中使用/作为URL的前缀将使路径相对于根目录。例如,给定www.example.com/fruits/apples.html处的html页面,a的{​​{1}}将链接到页面href="/vegetables/carrots.html"

base tag元素允许您为该页面指定base-uri(尽管必须将www.example.com/vegetables/carrots.html标记添加到每个页面中为了使用特定的基础,我只想引用W3的例子:

  

例如,给出以下BASE声明和A声明:

base
  

相对URI“../cages/birds.gif”将解析为:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
 <HEAD>
   <TITLE>Our Products</TITLE>
   <BASE href="http://www.aviary.com/products/intro.html">
 </HEAD>

 <BODY>
   <P>Have you seen our <A href="../cages/birds.gif">Bird Cages</A>?
 </BODY>
</HTML>

Example quoted from: http://www.w3.org/TR/html401/struct/links.html#h-12.4

建议阅读:

答案 1 :(得分:18)

使用

<a href="/fruits/index.html">Back to Fruits List</a>

<a href="../index.html">Back to Fruits List</a>

答案 2 :(得分:4)

只需添加<a href="/">some link<a/>,即可访问网站的根目录

答案 3 :(得分:3)

<a href="/fruits/index.html">Back to Fruits List</a>

答案 4 :(得分:3)

如果要从 ASP.NET应用程序服务器端创建URL,并将网站部署到虚拟目录(例如app2)在你的网站上即 http://www.yourwebsite.com/app2/

然后只需插入

<base href="~/" />

就在标题标签之后。

所以每当你使用root相对时,例如

<a href="/Accounts/Login"/> 

将解析为“http://www.yourwebsite.com/app2/Accounts/Login

通过这种方式,您可以始终相对绝对地指向您的文件;)

对我而言,这是最灵活的解决方案。

答案 5 :(得分:0)

为图像标记提供URL,该标记在根目录中找到images/目录,如

`logo.png`

您应该从src开始提供/网址,如下所示:

<img src="/images/logo.png"/>

即使您在 branches/europe/about.php ,此代码也可以在任何目录中运行而不会出现任何问题。

还可以看到徽标。

答案 6 :(得分:0)

使用此代码&#34; ./"作为服务器上的root用户,因为它适用于我

<a href="./fruits/index.html">Back to Fruits List</a>

但是当你在本地机器上时,请使用以下代码&#34; ../"作为根相对路径

<a href="../fruits/index.html">Back to Fruits List</a>

答案 7 :(得分:-1)

相对路径汇总(适用于href、src等):

/file_Or_FolderName          Root directory
./file_Or_FolderName         Current directory
../file_Or_FolderName        Previous directory (One level up)
../../file_Or_FolderName     Previous of previous directory (Two levels up)
../../../file_Or_FolderName  Just like above - Three levels up 

示例:

www.example.com
    ├── apple.html
    └── FolderA
        ├── fileA.html
        └── FolderB
            ├── fileB.html
            └── FolderC
                ├── fileC.html
                └── FolderD       <------ Suppose you're here (current directory)
                    ├── fileD.html
                    └── FolderE
                        └── fileE.html

以下显示了如何使用相对路径(适用于 href、src 等)在不同级别访问文件

fileD.html                 - same level access(or)
./fileD.html               - same level
./FolderE/fileE.html       - 1 level Down
../fileC.html              - 1 level Up
../../fileB.html           - 2 levels Up
../../../fileA.html        - 3 levels Up
../../../../apple.html     - 4 levels Up (or)
/apple.html                - 4 levels Up but direcly using root /