有相对于 root的链接?

最后发布: 2011-04-05 23:01:43


问题

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

例如,在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 如果是第一个,有没有办法让它指向第二个?

html location-href
回答

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

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

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

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

编辑在答复问题,在注释中,从OP:

这样做/将使它相对于www.example.com,有没有办法指定根是什么,例如,如果我想在www.example.com/fruits/中将根作为www.example.com/fruits苹果/ apple.html?

是的,在hrefsrc属性中使用/作为URL的前缀将使相对于根目录的路径成为可能。 例如,在给定的HTML页面www.example.com/fruits/apples.htmlahref="/vegetables/carrots.html"将链接到页面www.example.com/vegetables/carrots.html

base标记元素允许您为该页面指定base-uri(尽管必须将base标记添加到使用特定基础所需的每个页面,为此我将简单地引用W3的示例:

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

<!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>

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

http://www.aviary.com/cages/birds.gif

举例来自:http://www.w3.org/TR/html401/struct/links.html#h-12.4

建议阅读:


回答

使用

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

要么

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


回答

只需将<a href="/">some link<a/> ,这将使您进入网站的根目录


回答

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

然后插入

<base href="~/" />

就在标题标签之后。

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

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

将决定“ http://www.yourwebsite.com/app2/Accounts/Login

这样你总是可以相对绝对地指向你的文件;)

对我来说,这是最灵活的解决方案。


回答

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


回答

给一个图像标记的URL,它在根目录中定位images/目录

`logo.png`

你应该给出以/开头的src URL,如下所示:

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

即使您在branches/europe/about.php此代码也可以在任何目录中运行而不会出现任何问题。仍然可以在那里看到徽标。


回答

在服务器上以root身份使用此代码“./”,因为它适用于我

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

但是当您在本地计算机上时,请使用以下代码“../”作为根相对路径

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