是否有办法让页面上的所有链接都相对于根目录?
例如,在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
?如果是第一个,有没有办法让它指向第二个?
答案 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?
是的,在href
或src
属性中使用/
作为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 /