zoukankan      html  css  js  c++  java
  • favicon.ico学习(一)什么是 favicon.ico,为何我的浏览器会向其秘密发送请求?

    favicon.ico是什么?

    所谓favicon,即Favorites Icon的缩写,是指显示在浏览器收藏夹、地址栏和标签标题前面的个性化图标。 以图标的方式区别不同的网站。

    favicon.ico是一个网站必要的吗?

    不是必要的,当您使用浏览器浏览不同站点时,浏览器将自动发送请求。 如果您的浏览器收到有效 favicon.ico 文件,将显示此图标。 如果未收到,则不会显示特殊图标,会报404错误,并且会记录到错误日志中,所以最好的设置。

    favicon.ico怎么设置?

    第一种方式:放在根目录

    这种方法最简单,在服务器根目录下放一个 favicon.ico 的文件,浏览器发现后就会使用。(把做好的favicon.ico图标文件上传到网站根目录,并命名为xxx.icon就可以了; )

    注:这种方式,ico文件的名称一定要叫:favicon

    第二种方法:link标签

    在head里面加入代码:

    <link rel="shortcut icon" href="ico文件url">
    或
    <link rel="icon" href="../favicon.ico">
    或
    <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">

    注:这种方式,ico文件的名称就可任意命名了。

    第一种方法设置的是全站的,第二种方法可以针对某个网页单独设置ico(但是该图标的路径一定要使用绝对路径)

    注意,我们直接使用rel="icon"就可以了,现在很多网站依然使用rel="shortcut icon",这是一种过时的用法,可以被淘汰掉了。

    可以直接使用:

    <link rel="icon" href="/path/to/icons/favicon.ico" type="image/x-icon">

    favicon的格式一定是ico格式吗?

    favicon的格式不一定是ico格式,它可以是pngjpg甚至是gif,不过ico格式是所有浏览器都支持的。

    favicon.ico的尺寸有16×16、32×32、48×48,在添加到桌面、任务栏小尺寸的图标就不是很理想了,这就需要多种尺寸兼容各种设备和情况。

    favicon.icon文件怎么制作?

    简单的方式就是在线制作,推荐网址:ico图标在线制作: http://www.faviconico.org/

    如何让网站不去请求favorites icon? 

    在做 H5 混合应用的时候,不希望产生 favicon.ico 的请求。可以在页面的 <head> 区域,加上如下代码实现屏蔽:

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

    或者详细一点

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

    补充

    Faviconfavorites icon的缩写,亦被称为website icon(网页图标)、page icon(页面图标)或urliconURL图标)。Favicon是与某个网站网页相关联的图标。网站设计者可以多种方式创建这种图标,而目前也有很多网页浏览器支持此功能。浏览器可以将favicon显示于浏览器的地址栏中,也可置于书签列表的网站名前,还可以放在标签式浏览界面中的页标题前。

    最初,定义一个favicon的方法是将一个名为“favicon.ico”的文件置于Web服务器根目录下,Internet Explorer的收藏夹(即书签)可以自动显示该文件。[1] 后来出现了一种更为灵活的方法,即使用HTML来为任何一个网页指示其图标所存储的位置。这种方法是通过在页面的<head>部分添加两个link组件来实现的。这样,任何一个适当大小的(16×16像素或更大)的图像都可以用作favicon。尽管如此,多数情况下仍然使用ICO格式。其他网页浏览器现在也支持PNG(便携式网络图片)格式,和GIF(图形交换格式)动画图像格式。

    市面上多数浏览器同时支持上述两种方法。正因此,网络服务器要接受很多对“favicon.ico”文件的请求,即使该文件根本不存在。网站管理员对此很不满,因为这样会增加大量的服务器日志项,并导致很多不必要的磁盘读取和CPU、网络资源的占用。另一个常见的问题是,当清除浏览器的缓存后,favicon可能会消失。

    标准化

    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,进而消除了此问题的第一部分。

    • 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属性中进行自定义。

    指导

    过去,为保证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:包括多种分辨率(最常使用的是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组件的浏览器找到,即使没有您的站点上没有指向它的链接。

    参考

    https://zh.wikipedia.org/wiki/Favicon

    https://www.zhangxinxu.com/wordpress/2019/06/html-favicon-size-ico-generator/

     

  • 相关阅读:
    Linux下安装破解JIRA 6.3.6 并连接MYSQL5
    centos7 系统安装问题汇总
    CentOS7安装iptables防火墙
    Vue全家桶实战 从零独立开发企业级电商系统
    小米笔记本pro充电10秒断开
    mac电脑的使用
    autojs解决方案
    auto.js连接vscode
    小米6手机刷机亲测详解
    #002前端基础-JS-浏览器中堆栈内存的底层处理
  • 原文地址:https://www.cnblogs.com/kunmomo/p/13398818.html
Copyright © 2011-2022 走看看