为什么我的favicon没有出现?

Siv*_*ith 44 html favicon

以下用于在我的html代码中设置favicon:

<link rel="icon" type="img/ico" href="img/favicon.ico">
Run Code Online (Sandbox Code Playgroud)

但是,图标不显示.为什么?

注意:

我已确认该文件在正确的路径上是磁盘上的.

Ric*_*haw 67

  1. 它真的是一个.ico,还是只是命名为".ico"?
  2. 你在测试什么浏览器?

拥有图标的绝对最简单的方法是在根文件夹中放置一个名为"favicon.ico"的图标.这只适用于所有地方,根本不需要代码.

如果必须将其放在子目录中,请使用:

<link rel="shortcut icon" href="/img/favicon.ico" />
Run Code Online (Sandbox Code Playgroud)

请注意/之前的img以确保它锚定到根文件夹.

  • 必须承认,我从未有过没有根目录可访问的服务器 - 这听起来很糟糕! (5认同)
  • 通常,作者无法访问服务器根目录; 因此,这绝不是最简单的,这种方式是不可能的. (4认同)
  • 我认为值得注意的是,浏览器有时会大量缓存favicons.添加<link>标记后,尝试查看页面源并单击href =链接.这将让您查看链接是否正确. (2认同)

Cri*_*ris 10

试试这个:

<link href="img/favicon.ico" rel="shortcut icon" type="image/x-icon" />
Run Code Online (Sandbox Code Playgroud)


tim*_*ion 6

Favicons仅在从Web服务器提供服务时才起作用,该服务器为服务内容正确设置mime类型.从本地文件加载可能不适用于铬.从错误配置的Web服务器加载将不起作用.

必须手动配置 lighthttpd等Web服务器才能正确设置mime类型.

由于mimetype赋值可能不适用于所有环境,我建议您使用内联base64编码的 ico文件.这也将加载更快,因为它减少了发送到服务器的http请求的数量.

在基于POSIX的系统上,您可以使用该base64命令对文件进行base64编码.

要创建base64编码的ico行,请使用以下命令:

$ base64 favicon.ico --wrap 0
Run Code Online (Sandbox Code Playgroud)

并将输出插入到行中:

<link href="data:image/x-icon;base64,HERE" rel="icon" type="image/x-icon" />
Run Code Online (Sandbox Code Playgroud)

HERE像这样替换这个词:

<link href="data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAA////AERpOgA5cCcA7vDtAF6jSABllFcAuuCvAK2trQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFjMzMzMzNxARYzMzMzVBEEERYzMzNhERZxRGMzZxQEA2FER3cRSAgTNxgEEREIQBMzFIARERFEEzNhERARFAATMzYREBEAhBMzMzEYEBFEEzMzNhEQQRQDMzMzcRgEAAMzMzNhERgIEzMzMyERgEQDMzMzMRAEgEMzMzMxERAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" rel="icon" type="image/x-icon" />
Run Code Online (Sandbox Code Playgroud)