【发布时间】:2012-02-07 10:13:42
【问题描述】:
不知道如何表达这个问题,但我可以给你一个例子。
我猜这在速度和整体“正确地做”方面会更有效;
http://www.dlolpics.com/images/troll.jpg
或
图片/troll.jpg
我通常不使用我的域 URL,而是使用 images/troll.jpg,但这真的有很大的不同吗?或者根本就没有什么不同?
任何信息都会很棒,谢谢。
【问题讨论】:
不知道如何表达这个问题,但我可以给你一个例子。
我猜这在速度和整体“正确地做”方面会更有效;
http://www.dlolpics.com/images/troll.jpg
或
图片/troll.jpg
我通常不使用我的域 URL,而是使用 images/troll.jpg,但这真的有很大的不同吗?或者根本就没有什么不同?
任何信息都会很棒,谢谢。
【问题讨论】:
显然,网页中的内容越少,下载的内容就越小,但这并不足以证明较短的网页是合理的。
使用相对 URL(较短的 URL)的主要原因是为了使网站更便携。例如,如果您重命名层次结构中较高的目录或更改您的域名,您并不会通过整个站点来修复您的所有 URL。
底线: 这样做是为了便于维护,除非您在一个页面中有数千个链接,或者您正在获得像 twitter 这样的数字的网络流量,否则它不会产生明显的性能差异。老实说,这听起来像是您过早地优化了应用程序,并且可能专注于错误的事情,除非您已经对您的网站进行了概要分析并注意到与 HTML 大小相关的性能问题。
【讨论】:
在速度方面没有区别,只是发送了一些额外的字节,因为前者的 URL 比后者长。
我会选择后一种形式/images/troll.jpg(记住第一种形式/)。否则,如果有一天您决定移至另一个域或开始使用 HTTPS,您将不得不修改所有链接。然而,克服这个问题的一种方法是使用//www.dlolpics.com/images/troll.jpg。这将链接到您当前使用的任何协议; HTTP 或 HTTPS。
我能想到的/images/troll.jpg 的唯一缺点是是否可以从多个 URL 访问同一个站点,例如,如果您的站点可以通过 http://dlolpics.com/ 和 http://www.dlolpis.com/ 访问,在这种情况下,访问的用户两个站点都可以下载该文件两次,第一次从http://dlolpics.com/images/troll.jpg 下载,然后从http://www.dlolpis.com/images/troll.jpg 下载。如果使用完整的 URL 方法,浏览器会意识到它已经缓存了图像。然而,这应该通过只允许访问上述 URL 之一(并将另一个重定向到它)来解决,以避免链接混淆和 cookie/缓存问题。
【讨论】:
以下是一些需要考虑的不同指标:
基于这些,坚持使用相对 URL 是一个更好的选择。
【讨论】:
这并不是真正的效率/速度问题,而是更多关于便携性的问题。如果您的媒体与您的网页位于同一台服务器上,则相对 url 比绝对路径更可取,因为如果您将目录甚至站点移动到另一个域,该图像位置仍将始终相对于请求它的页面.
【讨论】:
如果您正在构建一个会获得很多很多点击的网站,您可能希望使用CDN 来分发您的媒体,但如果不是,则任何一种方式在速度方面都差不多。记住这些规则:
Rules of Optimization:
Rule 1: Don’t do it.
Rule 2 (for experts only): Don’t do it yet.
【讨论】:
除了保存在 URL 中的几个字节之外,没有任何区别。
【讨论】:
其实还是有很大区别的。
http://www.dlolpics.com/images/troll.jpg 是绝对路径 而 images/troll.jpg 是相对路径。
假设您将您的网站域从 dlolpics.com 更改为 whatever.com,如果您使用的是无法加载图片的绝对路径。
【讨论】: