【问题标题】:Root-linking (/) VS absolute-linking (eg. http://www.)根链接 (/) VS 绝对链接(例如 http://www.)
【发布时间】:2017-01-31 06:42:18
【问题描述】:

我目前在我的网站上使用根链接,例如。 <a href="/">Home</a><a href="/contact">Contact</a>。我喜欢这样,因为它使代码更简洁。

虽然我想知道使用这种方法是否有任何缺点,例如。如果它会降低页面速度或对 SEO 不利?

编辑:

我也想知道图片:

例如“http://www.domain.com/img/image1.jpg”会比“/img/image1.jpg”更快地加载吗?如果是,是否超过 50 毫秒?

我知道绝对链接很难维护,例如。 localhost 或者如果您想更改为“https://”。但我还是想知道速度……

【问题讨论】:

    标签: html hyperlink href


    【解决方案1】:

    从技术角度来看,这并没有什么不同。浏览器需要在发出任何 HTTP 请求之前构造一个绝对 URL。 Section 2.5 of the HTML5 specification 包含如何解析 URL 的精确说明,例如对于href 属性。第四步相关:

    如果使用绝对 URL 调用算法以用作基本 URL,则让 base 成为该绝对 URL。

    否则,让base 成为元素的基本 URL。

    “元素的基本 URL”通常与文档的基本 URL 相同,除非您明确更改它。

    这是 唯一 点,网址的符号会有所不同。参数 base 和 URL 将被传递给解析器,然后解析器从这些值构造一个绝对 URL。如果文档 URL 是 https://example.com/foo/bar.html,那么解析 /stackoverflowhttps://example.com/stackoverflow 将产生相同的 URL (https://example.com/stackoverflow)。


    在解析完 URL 后,浏览器通常会向服务器发出 HTTP 请求。这很可能不包括 DNS 请求,因为 DNS 缓存很可能包含该主机的条目。
    HTTP 请求本身看起来也一样(主机名和路径是分开传输的)。


    谈到性能,实际上没有区别。 (除非您考虑在 DOM 中找到基本 URL 所需的那几纳秒。)

    这只是一个符号问题,编写相对 URL(相对于文档或相对于根目录)通常更简单,但是如果您制作的不仅仅是静态网站,您应该考虑生成绝对服务器上的 URL。例如,用户可能决定不在根目录中使用您的应用程序,而是在子目录中使用,因此所有与根目录相关的 URL 都会中断。


    这同样适用于 SEO、搜索引擎和爬虫构建绝对 URL,就像浏览器一样。

    【讨论】:

      【解决方案2】:

      这对 SEO 来说绝对不错。 GoogleBot 和浏览器会自动将域添加到根相对链接。足够聪明,可以解决这个问题。

      我很想看看是否有人做过页面加载测试来比较加载资源。我的猜测是差异可以忽略不计。

      您可以使用开发者工具 (Chrome) 中的Timeline 选项卡来评估页面加载性能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-02
        • 2010-10-07
        • 2015-12-04
        • 2011-09-05
        • 2010-10-06
        • 1970-01-01
        • 2013-10-10
        相关资源
        最近更新 更多