Favicon
Favicon是favorites icon的縮寫,亦被稱為website icon(網站圖示)、page icon(頁面圖示)或urlicon(URL圖示)。Favicon是與某個網站或網頁相關聯的圖示。網站設計者可以多種方式建立這種圖示,而目前也有很多網頁瀏覽器支援此功能。瀏覽器可以將favicon顯示於瀏覽器的地址列中,也可置於書籤列表的網站名前,還可以放在標籤式瀏覽介面中的頁標題前。
最初,定義一個favicon的方法是將一個名為「favicon.ico」的檔案置於Web伺服器的根目錄下,Internet Explorer的我的最愛(即書籤)可以自動顯示該檔案。[1] 後來出現了一種更為靈活的方法,即使用HTML來為任何一個網頁指示其圖示所儲存的位置。這種方法是透過在頁面的<head>
部分添加兩個link元件來實現的。這樣,任何一個適當大小的(16×16像素或更大)的圖像都可以用作favicon。儘管如此,多數情況下仍然使用ICO格式。其他網頁瀏覽器現在也支援PNG(可攜式網絡圖片)格式,和GIF(圖形交換格式)動畫圖像格式。
市面上多數瀏覽器同時支援上述兩種方法。正因此,網絡伺服器要接受很多對「favicon.ico」檔案的請求,即使該檔案根本不存在。網站管理員對此很不滿,因為這樣會增加大量的伺服器紀錄檔項,並導致很多不必要的磁碟讀取和CPU、網絡資源的佔用。另一個常見的問題是,當清除瀏覽器的快取後,favicon可能會消失。
歷史
1999年3月,Internet Explorer最早僅僅將favicon用於我的最愛(例如MSIE 5.0)[2][3][4]。這產生了一些關於私隱問題的考慮,因為網站擁有者可以透過檢查訪問紀錄檔察看有多少人下載了favicon.ico
檔案,判斷有多少人將他們的網站放入我的最愛中。然而,自從許多其他瀏覽器開始在每次訪問時都將favicon顯示在地址列上,這就不再是一個問題了[3]。
標準化
Favicon功能最早由微軟創設,而微軟公司的Internet Explorer網頁瀏覽器會對每一個網站都請求favicon。微軟支援的link標籤不遵從World Wide Web Consortium(W3C,萬維網聯盟)的HTML建議[1](頁面存檔備份,存於互聯網檔案館),因為:
rel
屬性必須包含一個用空格作分隔符的link類型的列表,所以一個包含兩詞的link類型不能被遵守標準的瀏覽器理解。- 「.ico」檔案類型(一種用於Microsoft Windows上圖示的光柵格式)沒有一個註冊的MIME類型,而且似乎在當時也不能被多數瀏覽器理解。然而2003年,這一格式在IANA獲得註冊,其MIME類型是image/vnd.microsoft.icon,進而消除了此問題的第一部分。
- 在網站上使用保留地址(reserved location)與Architecture of the World Wide Web(互聯網的結構)(頁面存檔備份,存於互聯網檔案館)矛盾,同時被認為是link squatting(連結劫持)或URI squatting(URI劫持)。
Mozilla瀏覽器透過一種遵從Web標準的方法添加了對favicon的支援。它採用rel="icon"
並允許網絡設計人員添加任何支援的圖像格式的favicon。例如<link rel="icon" type="image/png" href="/path/image.png" />
。後來鑑於此功能將被用於所有新內容,多數瀏覽器都對此功能增加了支援。
根據《HTML 4.01 Specification W3C Recommendation 24 December 1999》,rel屬性的取值僅有:
- Alternate
- Stylesheet
- Start
- Next
- Prev
- Contents
- Index
- Glossary
- Copyright
- Chapter
- Section
- Subsection
- Appendix
- Help
- Bookmark
如果要採用其他值,應當在head標籤中的profile屬性中進行自訂。W3C給出了一個建議:《How to Add a Favicon to your Site》(頁面存檔備份,存於互聯網檔案館)。
簡單地說:
- 在head標籤中加入profile屬性指向http://www.w3.org/2005/10/profile(頁面存檔備份,存於互聯網檔案館)。
- 用link標籤指向Favicon URI,rel值為icon
一個常見的錯誤是不指定profile。
指導
過去,為保證favicon出現,網站設計者和開發者採用了多種方法。很難明確地保證favicon可以在所有電腦上顯示,即使是用同一版本的一種瀏覽器。
下列代碼另一個局限就是它把favicon關聯到了某個特定的HTML或XHTML文件上。為避免這一點,favicon.ico檔案應置於根目錄下。多數瀏覽器將自動檢測並使用它。
- 建議包含以下兩行HTML代碼:
<link rel="shortcut icon" href="http://example.com/favicon.ico" type="image/vnd.microsoft.icon" />
<link rel="icon" href="http://example.com/favicon.ico" type="image/vnd.microsoft.icon" />
- 然而,只有第一行是必須的,因為「shortcut icon」字串將被多數遵守標準的瀏覽器辨識為列出可能的關鍵詞(「shortcut」將被忽略,而僅使用「icon」);而Internet Explorer將會把它作為一個單獨的名稱(「shortcut icon」)。這樣做的結果是所有瀏覽器都可以理解此代碼。只有當希望為新瀏覽器提供另一種備用圖像(例如動畫GIF)時,才有必要添加第二行。
- 在HTML中,
link
元件必須在head
元件里(在<head>
和</head>
之間)。 - 對於XHTML,link必須使用「
/>
」結束(或「></link>
」),而不可以使用「>
」結束。 href
可以,但不必指向/favicon.ico
的位置。它可以指向任何URL。- 圖像通常可以使用任何被瀏覽器支援的圖像格式。
.ico
檔案格式通常可以被所有可以顯示favicon的瀏覽器讀取。- 設置伺服器,以傳送正確的MIME標識:
- ICO 檔案
image/vnd.microsoft.icon
(或者亦可出於相容性原因使用image/x-icon
。然而最好使用IANA註冊的MIME類型(頁面存檔備份,存於互聯網檔案館),因為多數主流瀏覽器現在支援它) - GIF 檔案
image/gif
- PNG 檔案
image/png
- ICO 檔案
- 使用適當的解像度和色深。
- ICO:包括多種解像度(最常使用的是16×16和32×32,Mac OS X有時使用64×64和128×128)以及位深(位元每像素)(多數使用4、8、24 bpp,即16、256和1600萬色)。
- GIF:使用16×16,256色。
- PNG:使用16×16,256色或24位元。
注意:當favicon.ico
被置於文件根目錄時,將會被一些不處理link
元件的瀏覽器找到,即使沒有您的站點上沒有指向它的連結。
參考
- ^ Favicon.ico - Make your OWN Icon bookmark for Internet Explorer. AccessFP. [2012-12-30]. (原始內容存檔於2013-01-05).
If you want the icon to appear you must upload a file named favicon.ico into the Root directory...
- ^ McGrew, Darin. Web Authoring FAQ – 8.11. How can I have a custom icon when people bookmark my site?. htmlhelp.com. 26 April 2007 [23 February 2011]. (原始內容存檔於2019-12-16).
- ^ 3.0 3.1 Heng, Christopher. What is Favicon.ico? Personalise Your Site's Bookmarks. thesitewizard.com. 7 September 2008 [23 February 2011]. (原始內容存檔於2012-02-08).
- ^ Creating favicons with Adobe Photoshop and GoLive. Adobe GoLive. [25 February 2011]. (原始內容存檔於2003-12-07).
外部連結
- W3C網絡標準化組織關於如何添加favicon的建議(頁面存檔備份,存於互聯網檔案館)
- 如何使用PHP添加favicon(頁面存檔備份,存於互聯網檔案館)。
- MSDN Library: Win32的圖示(頁面存檔備份,存於互聯網檔案館)
- Online favicon editor: 線上製作Favicon圖示(頁面存檔備份,存於互聯網檔案館)
- 開放目錄專案中的「Image Generation:Favicons」(有些過時的資訊)
- MSDN Library: 自訂站點圖示(頁面存檔備份,存於互聯網檔案館)