favicon.ico請求處理


favicon.ico 圖標用於收藏夾圖標和瀏覽器標簽上的顯示,如果不設置,瀏覽器會請求網站根目錄的這個圖標,如果網站根目錄也沒有這圖標會產生 404。
出於優化的考慮,要么就有這個圖標,要么就禁止產生這個請求。

在做 H5 移動端應用的時候,不希望產生 favicon.ico 的請求。

可以在頁面的 <head> 區域,加上如下代碼實現屏蔽:

<link rel="icon" href="data:;base64,=">

 

或者詳細一點

<link rel="icon" href="data:image/ico;base64,aWNv">

 

當然,既然是 dataURL 方式,IE < 8 等 old browser 就不適用了


轉載自:https://www.jianshu.com/p/e2fc292e9bf5

 

 

 

在項目中使用node.js請求favican.ico的時候會出現2條請求,浪費資源,經過一番改進,記錄下來過程,以后注意。
 
代碼如下:

 
var http=require("http");
 var server=http.createServer();
 server.on("request",function(req,res){5         console.log(req.url);
     res.end();
 });
 server.listen(1337,"127.0.0.1");

 

 

這樣的代碼在請求時會出現兩條請求:

第一條時URL地址為用戶輸入的客戶端請求的目標URL地址,"/"代表用戶的目標url地址為web應用程序的根目錄.

第二個目標URL地址問瀏覽器為頁面在收藏夾中的顯示圖標.默認為favicon.ico.而自動發出的請求的目標URL地址.

可以對上面的代碼做修改后屏蔽這樣的請求

 

代碼如下:

 
var http=require("http");
 var server=http.createServer();
 server.on("request",function(req,res){
     if(req.url!=="/favicon.ico")
         console.log(req.url);
     res.end();
 });

 

 

轉載自:https://www.jb51.net/article/58525.htm

 

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

image

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

 

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

image

image

image

image

 

home.html 代碼如下:

  1.  
    <!DOCTYPE html>
  2.  
    <html xmlns="http://www.w3.org/1999/xhtml">
  3.  
    <head>
  4.  
    <title>home page</title>
  5.  
    <link rel="icon" href="Images/wangyi.ico" type="image/x-icon" />
  6.  
    <link rel="shortcut icon" href="Images/wangyi.ico" type="image/x-icon" />
  7.  
    </head>
  8.  
    <body>
  9.  
    home page
  10.  
    </body>
  11.  
    </html>

 

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

  1.  
    <link rel="icon" href="Images/wangyi.ico" type="image/x-icon" />
  2.  
    <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.icotype="image/x-icon" />

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

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

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

 

另外,favicon.ico這個請求是瀏覽器自動發送的請求,我們過濾不了的。當我們訪問網頁的時候,瀏覽器默認會發送favicon.ico這個請求來查找網頁的圖標文件,這就是為什么我們設置網頁圖標的時候,只要把favicon.ico這個文件放到目錄里去就行了的原因

注:
請求favicon.ico時如果請求不到東西那么是給favicon返回的response所以無論怎么弄
都不會影響review頁面的html內容。。。。。。。。。。。。。。。。。。。

轉載自:https://blog.csdn.net/u011724770/article/details/53435630

 

 

我的示例html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge"> -->
    <link rel="icon" href="data:;base64,=">
    <!-- <link rel="SHORTCUT ICON" href="111(這里面的內容就是默認請求的,只要rel值里面帶icon關鍵字好像就可以)"> -->
    <title>Document</title>
</head>
<body>
    review.html
</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM