我想知道这两种类型的url之间的区别:相对url(图片,CSS文件,JS文件等)和绝对url。
另外,用哪个比较好呢?
我想知道这两种类型的url之间的区别:相对url(图片,CSS文件,JS文件等)和绝对url。
另外,用哪个比较好呢?
当前回答
一般来说,使用相对URL被认为是最佳实践,这样你的网站就不会被绑定到当前部署的基础URL。例如,它可以在本地主机上工作,也可以在您的公共域上工作,而无需修改。
其他回答
我衷心推荐使用相对url将同一站点的部分指向同一站点的其他部分。
不要忘记,即使在同一个站点中,更改到HTTPS也需要一个绝对URL。
如果是在你的网站中使用,最好使用相对URL,如果你需要将网站移动到另一个域名或只是在本地调试,你可以这样做。
看看stackoverflow在做什么(firefox中的ctrl+U):
<a href="/users/recent/90691"> // Link to an internal element
在某些情况下,他们使用绝对url:
<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=5934">
... 但这只是提高速度的最佳做法。在你的情况下,你看起来不像这样做,所以我不会担心。
假设您有一个网站www.yourserver.example。在web文档的根目录中有一个images子目录,其中有myimage.jpg。
绝对URL定义了文档的确切位置,例如:
http://www.yourserver.example/images/myimage.jpg
相对URL定义了相对于当前目录的位置,例如,假设你在你的图片所在的根目录中:
images/myimage.jpg
(相对于根目录)
你应该尽可能使用相对url。如果你将网站移动到www.anotherserver.com,你将不得不更新所有指向www.yourserver.example的绝对url,相对的url将继续工作。
假设我们正在创建一个子站点,其文件位于http://site.ru/shop文件夹中。
1. 绝对URL
Link to home page
href="http://sites.ru/shop/"
Link to the product page
href="http://sites.ru/shop/t-shirts/t-shirt-life-is-good/"
2. 相对URL
Link from home page to product page
href="t-shirts/t-shirt-life-is-good/"
Link from product page to home page
href="../../"
虽然相对URL看起来比绝对URL短,但绝对URL更可取,因为链接可以在网站的任何页面上使用。
中间的情况下
我们考虑了两种极端情况:“绝对”绝对url和“绝对”相对url。但在这个世界上,一切都是相对的。这也适用于url。每次提到绝对URL时,都应该指定相对于什么。
3.Protocol-relative URL
Link to home page
href="//sites.ru/shop/"
Link to product page
href="//sites.ru/shop/t-shirts/t-shirt-life-is-good/"
谷歌推荐这样的URL。然而,现在通常认为http://和https://是不同的网站。
4. Root-relative URL
即相对于域的根文件夹。
Link to home page
href="/shop/"
Link to product page
href="/shop/t-shirts/t-shirt-life-is-good/"
如果所有页面都在同一个域中,这是一个很好的选择。当你把你的网站转移到另一个域名时,你不必在url中做大量的域名替换。
5. 基本相对URL(主页相对)
标签<base>指定基本URL,它会自动添加到所有相对链接和锚点。base标记不影响绝对链接。作为基本URL,我们将指定主页:<base href="http://sites.ru/shop/">。
Link to home page
href=""
Link to product page
href="t-shirts/t-shirt-life-is-good/"
现在,您不仅可以移动您的网站到任何域,但在任何子文件夹。请记住,虽然url看起来像相对的,但实际上它们是绝对的。 尤其要注意锚。要在当前页面中导航,我们必须写入href="t-shirt /t-shirt-life-is-good/#comments"而不是href="#comments"。后者将扔在首页上。
结论
对于内部链接,我使用基本相对url(5),对于外部链接和时事通讯,我使用绝对url(1)。
在大多数情况下,相对url是可行的,它们本质上是可移植的,这意味着如果您想提升您的站点并将其放在其他地方,它将立即工作,可能会减少调试时间。
有一篇相当不错的文章是关于绝对url和相对url的,看看吧。