我有一些纯 HTML 的静态页面,当服务器出现故障时我们会显示这些页面。我怎样才能将我制作的图标(它是 16x16px,它与 HTML 文件位于同一目录中;它被称为 favicon.ico)作为“选项卡”图标?我已经阅读了维基百科并查看了一些教程并实现了以下内容:
<link rel="icon" href="favicon.ico" type="image/x-icon"/>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
但它仍然不想工作。我正在使用 Chrome 来测试这些网站。根据维基百科,.ico 是在所有浏览器类型上运行的最佳图片格式。
更新
我无法让它在本地工作,尽管代码检查它只有在服务器开始为站点提供服务后才能真正正常工作。只需尝试将其推送到服务器并刷新缓存,它应该可以正常工作。
<link rel="icon" type="image/x-icon" href="favicon.ico">
添加到 head
(在 32、16 和 180 图标变体 link
旁边)解决了本地问题。由于我为较大的图标尺寸和清单包含了 link
,所以我没有三思而后行为什么 favicon.ico
没有出现! :-)
您可以制作 .png 图像,然后在静态 HTML 文档的 <head>
标记之间使用以下片段之一:
<link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="icon" type="image/png" href="https://example.com/favicon.png"/>
大多数浏览器会从站点的根目录中选择 favicon.ico
而无需告知;但他们并不总是立即用新的更新它。
但是,我通常会选择您的第二个示例:
<link rel='shortcut icon' type='image/x-icon' href='/favicon.ico' />
实际上,要使您的网站图标在所有浏览器中都能正常工作,您必须拥有超过 10 个尺寸和格式正确的图像。
我创建了一个应用程序 (faviconit.com),因此人们不必手动创建所有这些图像和正确的标签。
希望你喜欢。
Whoops, looks like something went wrong.
使用语法:.ico、.gif、.png、.svg
此表显示如何在主要浏览器中使用 favicon
。标准实现在文档的 <head>
部分中使用具有 rel
属性的链接元素来指定文件格式和文件名/位置。
请注意,大多数浏览器会优先考虑位于网站根目录中的 favicon.ico 文件(因此忽略任何图标链接标签)。
Edge Firefox Chrome I.E. Opera Safari
-------------------------------------- ------ --------- -------- ----- ----- ------
<link rel="shortcut icon" Yes Yes Yes Yes Yes Yes
href="http://example.com/myicon.ico">
<link rel="icon" Yes Yes Yes 9 Yes Yes
type="image/vnd.microsoft.icon"
href="http://example.com/image.ico">
<link rel="icon" type="image/x-icon" Yes Yes Yes 9 Yes Yes
href="http://example.com/image.ico">
<link rel="icon" Yes Yes Yes 11 Yes Yes
href="http://example.com/image.ico">
<link rel="icon" type="image/gif" Yes Yes Yes 11 Yes Yes
href="http://example.com/image.gif">
<link rel="icon" type="image/png" Yes Yes Yes 11 Yes Yes
href="http://example.com/image.png">
<link rel="icon" type="image/svg+xml" Yes Yes Yes Yes Yes No
href="http://example.com/image.svg">
文件格式支持
下表说明了 favicon
的图像文件格式支持:
Animated
Browser ICO PNG GIF GIF's JPEG APNG SVG
------------------- ----- ------ ------ ------- ------ ------ ------
Edge Yes Yes Yes No ? ? ?
Firefox 1.0 1.0 1.0 Yes Yes 3.0 41.0
Google Chrome Yes Yes 4 No 4 No No
Internet Explorer 5.0 11.0 11.0 No No No No
Safari Yes 4 4 No 4 No No
Opera 7.0 7.0 7.0 7.0 7.0 9.5 44.0
浏览器实现
下表说明了浏览器中显示网站图标的不同区域:
Address Address bar 'Links' Drag to
Browser Bar drop-down bar Bookmarks Tabs desktop
------------------- ------------ ----------- --------- ----------- ------ ---------
Edge No Yes Yes Yes Yes Yes
Firefox until v12 Yes Yes Yes Yes Yes
Google Chrome No No Yes Yes 1.0 No
Internet Explorer 7.0 No 5.0 5.0 7.0 5.0
Safari Yes Yes No Yes 12 No
Opera v7–12: Yes No 7.0 7.0 7.0 7.0
> v14: No
图标文件可以是 16×16、32×32、48×48 或 64×64 像素大小,以及 color depth 中的 8 位、24 位 或 32 位。
虽然上述信息通常是正确的,但在某些情况下存在一些变化/例外情况。
在 Wikipedia 的来源处查看更多详细信息。
更新:(“更多信息”)
请参阅 Google 的“新”(2019) 标准来定义要在搜索结果中显示的网站图标。
您可以(以编程方式或手动)检索具有以下 URL 的任何域的 Google 缓存图标: https://www.google.com/s2/favicons?domain=stackoverflow.com 在 标记中直接使用上述 URL返回:“”。
我用过 realfavicongenerator.net 几次;它非常彻底,生成/自定义您可能需要的每个可能的网站图标变体以获得最大的兼容性。 (但是,如果您正在寻找单个图标图像,这可能不适合您!)对于简单的文件转换(例如,PNG 到 ICO 等),我喜欢 onlineconvertfree.com。
使用 this 之类的工具将您的图像文件转换为 Base64 字符串,然后将以下代码段中的 YourBase64StringHere
占位符替换为您的字符串,并将该行放入您的 HTML 头部部分:
<link href="data:image/x-icon;base64,YourBase64StringHere" rel="icon" type="image/x-icon" />
这将在浏览器中 100% 工作。
As recommended by W3.org,您可以使用 rel
属性来实现这一点。
例子:
<head>
<link rel="icon"
type="image/png"
href="http://example.com/myicon.png">
...
如果 favicon 是 png 类型的图像,它将无法在旧版本的 Chrome 中使用。但是它在 FireFox 中可以正常工作。此外,在处理此类事情时不要忘记清除浏览器缓存。很多时候,代码还不错,但缓存才是真正的罪魁祸首。
<link rel="shortcut icon" type="image/ico" href="/favicon.ico"/>
<link rel="shortcut icon" type="image/ico" href="http://example.com/favicon.ico"/>
<link rel="shortcut icon" type="image/png" href="/favicon.png"/>
<link rel="shortcut icon" type="image/png" href="http://example.com/favicon.png"/>
<link rel="shortcut icon" type="image/png" href="/favicon.png"/>
<link rel="shortcut icon" type="image/ico" href="http://example.com/favicon.ico"/>
这对我有用
我知道它的旧帖子,但仍然为像我这样的人发帖。这对我有用
<link rel='shortcut icon' type='image/x-icon' href='favicon.ico' />
将您的网站图标放在根目录上..
根据 OP 的更新,它没有显示在本地,但是根据 OP 的更新,一旦我将它上传到服务器,就很好了。
由于这是一个简单的静态 html 网站,我可以在不运行本地网络服务器的情况下进行工作。默认情况下,网络服务器通常会自动提供网站图标(如果有的话)。
但是当不运行网络服务器时,浏览器本身不会仅仅读取目录以查找其他文件,例如 favicon.ico,除非它在 html 文档中列出。
因此,虽然我在 head
标记中有以下项目:
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
我没有也包含对普通“ol favicon.ico
”的引用。
尽管除了上面列出的图像之外,还包含了 favicon.ico
文件。
一旦我添加了以下行:
<link rel="icon" type="image/x-icon" href="favicon.ico">
当我查看本地文件时,它也确实出现在我的浏览器中,即使不通过本地服务器提供它也是如此。
所以图标在实时服务器上运行时显示正常,但不是在本地运行。
我明确提到这一点是因为我使用的网站图标生成器友好地提供了代码、图标、清单和说明。但是,虽然它包含 favicon.ico
图像,但它没有在要添加到 html
文档的代码中包含该文件的 <link>
。
我猜该服务假定 favicon.ico
将自动提供并且默认情况下被所有浏览器使用,因此只有“替代”版本需要显式添加到 head 标签中。
显然,他们不考虑在本地查看文件时(也就是不在本地提供文件),我们对查看图标不感兴趣?
file:///
网址执行此操作。
没有“类型”属性的最小图标
<link href='favicon.png' rel='icon' />
您甚至可以省略引号,但不建议在生产中使用。
作为附加说明,有一天可能会对某人有所帮助。
您不能在之前的页面上回显任何内容:
Hello
<link rel="shortcut icon" type="image/ico" href="/webico.ico"/>
<link rel="shortcut icon" type="image/ico" href="/webico.ico"/>
不会加载ico
<link rel="shortcut icon" type="image/ico" href="/webico.ico"/>
<link rel="shortcut icon" type="image/ico" href="/webico.ico"/>
Hello
工作正常
我使用 convert -resize 16x16 img.png favicon.ico
(在 linux konsole 上)转换我的图像,并将 <link rel="icon" href="images/favicon.ico" type="image/png" sizes="16x16">
添加到我的标题中,一切正常。
如果您将 favicon 添加到 root/images 文件夹中并命名为 favicon.ico 浏览器将自动理解并将其作为 favicon.I 测试并工作。您的链接必须是 www.website.com/images/favicon.ico
有关更多信息,请查看此答案:
Do you have to include <link rel="icon" href="favicon.ico" type="image/x-icon" />?
/images/
来自哪里?您的页面中可能有一个 base
元素。默认情况下,网站图标从 /
提供。但这是老方法;域现在通常拥有多个站点。最好添加图标元标记。
请注意,如果您的网站作为 subfolder
运行,即:
http://localhost/MySite/
您需要考虑到这一点。如果您是通过ASP.NET
应用执行此操作,您只需在 URL 前面添加一个 ~
:
<link rel="shortcut icon" type="image/x-icon" href="~/favicon.ico" />
~
不是 URL 世界中的东西。 /favicon.ico
是正确的。 ASP.net 是否对 url 进行了一些重写?使用“检查元素”或“查看页面源”检查实际页面源。
请注意,FF 无法在 URL 中加载带有冗余 //
的图标,例如 /img//favicon.png
。在 FF 53 上测试。Chrome 还可以。
尝试使用 <link rel="icon" type="image/ico" href="images/favi.ico"/>
不定期副业成功案例分享
head
标记中包含profile
属性...有必要吗?