在我的网站上,我倾向于使用网站链接而不是相对链接,如下所示:
我用:
<link rel="stylesheet" type="text/css" href="http://www.example.com/_css/_all/stylesheet-global-styles.css" />
替代(相对):
<link rel="stylesheet" type="text/css" href="/_css/_all/stylesheet-global-styles.css" />
我使用网站链接的原因是因为我使用了很多虚荣网址,例如:
example.com/test =&gt; example.com/test.php
example.com/test/1 =&gt; example.com/test.php?id=1
由于第二个示例中的多个'/',我的页面认为它们位于网站的子目录中,因此除非我输入'../',否则“相对”链接不起作用。我不能这样做,因为这意味着根据查询字符串是否存在以及有多少'/'来存储目录。因此,我被迫使用网站链接来包含我所需的内容。
我知道每个请求因此必须执行DNS查找,这会降低它的速度,但我的问题是,如果我链接,比如5个样式表和脚本会慢多少?
答案 0 :(得分:7)
不,因为他们是同一个人。相对链接仅仅是浏览器提供的网站管理员便利。它们最终也被解析为绝对链接:发送到服务器的每个请求始终包含完整的主机名和路径。相对链接是否比网站链接快得多?
DNS缓存是高速缓存的,因此如果系统配置正确,则不会有多次查找。
答案 1 :(得分:2)
它并没有真正有所作为。在幕后,浏览器无论如何都将链接转换为完整的URL。 DNS查询成本很低,因为DNS查找是缓存的。
恕我直言,相对链接更容易维护。您应该使用您认为最方便的技术。性能不是问题。如果您想提高性能,最好将样式表合并到一个文件中并缩小它。脚本文件也是如此。
答案 2 :(得分:2)
点击浏览器中的链接会发生什么情况? 浏览器启动HTTP请求。
它看起来怎么样?
如果您在http://www.example.com/path1/page1.html
并点击链接
../path2/page2.html
或
/path2/page2.html
或
http://www.example.com/path2/page2.html
请求始终相同
GET /path2/page2.html HTTP/1.1
host: www.example.com
因此与请求无差异
您可以随意整理链接。
答案 3 :(得分:0)
在参考之前使用/时,您的路径从您网站的根目录开始绝对 - 与使用../相反,就像您所说的亲戚一样。
答案 4 :(得分:-2)
你为什么不这样做
//yourapp.com/assets/css/style.css
//yourapp.com/assets/js/jq.js
//yourapp.com/cp/register
//yourapp.com/cp/update_account
//字面意思是指SSL或非SSL,它将始终解析。没有 速度差异。
reference on double slash domain //site.com and for ssl non ssl