我是否必须单独预取子域?
E.g。当我<link rel="dns-prefetch" href="//example.com">
时,我还需要//static.example.com
的其他标签吗?
答案 0 :(得分:14)
我做了以下测试:首先创建简单的HTML页面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="dns-prefetch" href="//example.com/">
</head>
<body>
<a href="http://example.com">Test link</a>
<a href="http://sub.example.com">Test link 2</a>
</body>
</html>
对于我拥有dns名称服务器的域和子域。然后我清理了dns缓存并在firefox私有窗口中打开了这个页面。我在我的dns名称服务器的日志中观察到只请求&#34; example.com&#34;已经完成,没有子域请求。
然后我按如下方式更改了页面:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="dns-prefetch" href="//example.com/">
<link rel="dns-prefetch" href="//sub.example.com/">
</head>
<body>
<a href="http://example.com">Test link</a>
<a href="http://sub.example.com">Test link 2</a>
</body>
</html>
再次清除dns缓存并在firefox私有窗口中打开此页面。现在我观察到dns请求我们为域和它的子域做了。
所以我可以得出结论是 - 你必须单独预取子域名。
答案 1 :(得分:5)
您必须单独预取每个子域名。
DNS的工作原理。你要求提供姓名,它会回复,它对&#34; subdomains&#34;一无所知。它只是一个名字。
nslookup google.com
只为google.com提供答案,没有子域名。
nslookup www.google.com
仅提供www.google.com,不提供顶级域名。