28

我的 favicon.ico 是否必须存储在我的域的根目录中?或者我可以将我的网站图标存储在另一个域中吗?

意思是,来自www.example.com,这是有效的吗?

<link rel="shortcut icon" href="http://MY-CDN.example.com/favicon.ico" />

我想做的是从我的 CDN 提供我的 www.example.com favicon。这个可以吗?我应该知道的关于浏览器兼容性、性能等的任何负面信息。

4

2 回答 2

37

是的。看看这个页面的源代码:

<link rel="shortcut icon" href="http://sstatic.net/so/favicon.ico">

但是,一些用户代理仍会尝试在您的域的根目录中获取它,您可能希望设置一个重定向指向那里,这样您就不会得到 404。

meder@meder-desktop:~$ curl -v http://stackoverflow.com/favicon.ico
* About to connect() to stackoverflow.com port 80 (#0)
*   Trying 69.59.196.211... connected
* Connected to stackoverflow.com (69.59.196.211) port 80 (#0)
> GET /favicon.ico HTTP/1.1
> User-Agent: curl/7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.10
> Host: stackoverflow.com
> Accept: */*
> 
< HTTP/1.1 302 Redirect
< Content-Type: text/html; charset=UTF-8
< Location: http://sstatic.net/so/favicon.ico
< Server: Microsoft-IIS/7.0
< Date: Tue, 05 Jan 2010 01:54:23 GMT
< Content-Length: 156
< 
<head><title>Document Moved</title></head>
* Connection #0 to host stackoverflow.com left intact
* Closing connection #0
<body><h1>Object Moved</h1>This document may be found <a HREF="http://sstatic.net/so/favicon.ico">here</a></body>
于 2010-01-05T01:44:24.007 回答
0

您可以通过将标头中的文件指向 CDN 轻松地做到这一点。如:

<link rel="shortcut icon" href="//cdn.perfmatters.io/favicon.ico" type="image/x-icon" />

有关更深入的详细信息,我将查看以下教程,其中包含有关如何在 CDN 上托管 favicon 所需的一切。https://www.keycdn.com/blog/make-a-favicon/

这绝不是您可以进行的最重要的优化,但同样,一切都很重要。特别是如果您要使用单个 HTTP/2 连接

于 2016-07-26T18:29:48.020 回答