favicon.ico what the problem ?

關於favicon.ico的兩三事

 

隨便打開一個網頁:比如 http://www.baidu.com/

image

可以看到在瀏覽器的標籤頭上面顯示了一個圖標,這個圖標是:image,也就是我們常說的favicon.ico.

 

由於這篇文章主要討論favicon.ico,以及各個瀏覽器對其的不同處理,所以還是新建web項目如下:

image

image

image

image

 

home.html 代碼如下:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>home page</title>
    <link rel="icon" href="Images/wangyi.ico" type="image/x-icon" />
    <link rel="shortcut icon" href="Images/wangyi.ico" type="image/x-icon" />
</head>
<body>
    home page
</body>
</html>

 

下面兩行代碼就可以告訴瀏覽器使用wangyi.ico 作爲home.html的圖標了:

<link rel="icon" href="Images/wangyi.ico" type="image/x-icon" />
<link rel="shortcut icon" href="Images/wangyi.ico" type="image/x-icon" />

 

基本上所有的現代瀏覽器都支持這種寫法,例如firefox,ie9.

firefox:image

ie9:image

 

可惜的是普通用戶用的基本上是360瀏覽器,搜狗瀏覽器,qq瀏覽器等。

搜狗瀏覽器:image

可以知道,我們在網站根目錄下面的favicon.ico 起作用了,所以顯示的是網站根目錄下面的favicon.ico 圖標。

打開360瀏覽器:image

奇怪了,google的圖標哪裏來的。。。。???

我們的faviconTestWeb 只有3個圖標,一個是wangyi.ico.baidu.ico.favicon.ico(cnblogs的圖標)。

爲什麼使用360顯示的是google的圖標?

 

其實360瀏覽器在瀏覽網頁的時候,它會忽略端口,也就是說http://localhost:3529/home.html

firefox請求的是:link 的href所對應的圖標。

搜狗瀏覽器等:請求的是http://localhost:3529/favicon.ico.

360瀏覽器等:請求的是http://localhost/favicon.ico,

也就是不管你請求的是http://host/home.html,還是http://host:333/home.html,還是http://host/test/home.html.

它請求的都是http://host/favicon.ico.

 

證據就是打開360se的安裝目錄:

image

 

 

所以如果你的網站favicon.ico 不起作用,或者是想要讓favicon.ico 的兼容性更好,要使用下面幾個步驟:

1:檢查網站根目錄下面的favicon.ico,也就是:http://host/favicon.ico.,而不是http://host/some/favicon.ico.

2:確保<link rel="icon" href="http://host/favicon.ico" type="image/x-icon" />

 <link rel="shortcut icon" href="http://host/favicon.ico" type="image/x-icon" />

使用的是http://host/favicon.ico

3:如果你的網站帶端口,或者是測試版本的話,那麼尤其要注意360等瀏覽器,它們在請求favicon.ico 的時候會忽略端口號的。

 

順便推薦一篇文章:[架站] 為什麼網站的根目錄最好有 favicon.ico 和 robots.txt 存在?

 

打個廣告:ico圖標在線製作: http://www.faviconico.org/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章