本地 (file://) 网站图标在 Firefox 中有效,但在 Chrome 或 Safari 中无效 - 为什么?

问题描述 投票:0回答:7

问题

当我的网站位于本地(使用

file://
协议)时,图标不会显示在 Chrome 或 Safari 中,但可以在 Firefox 中使用(均在 Mac 上)。然而,当实际托管完全相同的网站时,该图标在我尝试过的所有浏览器中都可以正常工作。为什么 webkit 浏览器不显示本地图标?

详情

favicon.ico 文件与index.html 页面位于同一目录中。我正在使用以下代码,尽管我已经尝试了它的几种变体:

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

由于通过

http://
访问该图标时可以正常工作,我怀疑我包含它的方式有问题,但你永远不知道......

更新

我发现了一些论坛帖子(没有太官方的帖子)表明这是设计使然,但没有一个给出理由。另外,似乎某些版本的 IE 也存在同样的问题。本地图标是否存在安全风险? (例如,我知道某些浏览器存在本地 cookie 问题。)

免责声明:似乎有很多类似的问题,但我还没有找到确切的这个问题。 (事实上,我的问题与this基本相同,但那里的答案都不适合我。)

html google-chrome webkit cross-browser favicon
7个回答
39
投票

您可以使用图像的 Base64 数据。放这样的东西:

<link href="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAD9/f0F/Pz8DP///wD///8P////Dv///xL///8P////A////wD///8A/v7+Cf///wX///8A////APv7+wr9/f0D+/v7Dv///wb///81+vv8i/v7/Iv3+PqL4+nxi+ru9JHy9Piu5+zzru3w9ZD+/v5x/v7+H////wr///8A9/f3H/7+/g7///8J////HNDX5Pyaq8j/m6zJ/5esy/+QpcX/larK/5uwzv+MoMH/mqrG/5qlv+7Q0Nty/f3+Af///wD///8A/v7+A////wz+/v6b2d/q/4abvf+Emr7/jKHD/5Gnyf+Uqsz/fpW5/4mXuP/U1OL/e3ui+MPE0l7///8A////AP///wD///8P////Xa680/9/lrr/kafJ/5yy0/+WrM7/nbPT/52uyv+ktM7/1NTi/8LC1f+lpr3n////AP///wD///8A////AP7+/mDo7PL/ytPi/5yv0fehsuXuuMvl0Kq81drS2uf8+/z9bff3+SG5uM1r8vL1ff///wD///8A////AP///wr+/v4H/v7+jufq8umIg/Sut7L9YKul/W7PzvlMnZn03Ozq/x/+/v4H////AP///wD///8A////AP///wD///8A5OH/IpuS/pF3cfPploz/hH5y/6F/dP+gl47/gkw++e7Hwv9Fta//XPj4/gf///8A////AP///wD///8A+vn/BoyB/pGlnf5vfHfxy4mA/JlIOf/lmZD+f1lK/89kWPrPmZD+f9zY/yu3sP5ar6j/ZP///wD///8A6uj/GbSt/l6imv9yVkf/1HBm+MJ5eOrlhX/1s2JY+dRpYPfPv7/zb4+F/41WR//Uloz/hI6E/47///8A////AOro/xmnn/9teW3/qH5y/6HKxf9B9/n7Fc3N9VfMyvlQraj6cbWv/1zj4f4h2tf/Lks7/+NmWP+/0s7/OP///wCvqP9kjoT/jo6E/46Sif+I+vn/Bt3a/ypsX/+5////AH90/6Dj4f4h0Mz/OrWv/1yyq/9gkon/iNzY/yv///8A19P/MvLx/g////8A////APX0/wxvYv6119P/MtzY/ytmWP+/oZj/df///wBQQP/dt7D+Wv///wD///8A////AP///wD///8A////AKyk/2makf9+UUL/283J/z/l4/8f1dH/M////wD///8At7D+Wv39/gH///8A////AP///wD///8A////AP///wDa1/8u2tf/LtrX/y719P8M////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAOAfAADgBwAA4AMAAPABAADwHwAA8d8AAPAfAADonwAA8CEAAOf5AADGvQAA/bcAAP3/AAD//wAA//8AAA==" rel="icon" type="image/x-icon" />

进入 html 文件的

<head>
部分。

您可以使用base64.guru等在线工具将图像文件的数据转换为Base64。


14
投票

本地
file://
和chrome:

对于 Chrome 中的 local 图标 - 根据 linux 命令 上找到的旧线程,如果本地图标位于您的

file://
目录中,应该可以使用
/Downloads/
放置本地图标。所以我尝试了这样的方法:

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    <link rel="shortcut icon" type="image/x-icon" href="file://localhost/Users/dominikangerer/Downloads/favicon.ico">
</head>
<body>
    <h1>Testing</h1>
</body>
</html>

我没有运行 apache 或任何东西。这就是 chrome 使用

file://
访问本地文件的方式。如果我尝试使用文件系统另一部分的图标,它似乎不起作用 - 所以也许这是 chrome 的解决方案。

enter image description here


本地
file://
和 Safari:

仍在寻找一种方法 - 上面的代码不适用于我的 up2date safari。


有趣的话题:


您的网站图标的一般故障排除指南:

看看:https://stackoverflow.com/a/16375622/1581725


7
投票

这是多年来的一个已知问题。您的代码是正确的,我认为您不会找到任何方法来允许 Chrome 或 IE 以非远程方式包含 favicon。

前一段时间,我尝试了很多方法,都没有效果,也没有找到任何关于这一点的浏览器文档。

<link rel="icon" href="favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="favicon.png" type="image/png" />
<link rel="shortcut icon" href="C:/files/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="file:///C:/files/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="file:///C|/files/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="file://localhost/C:/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="file://127.0.0.1/C:/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="file://localhost/C|/favicon.ico" type="image/x-icon" />

对于 Chrome,网站图标存储在文件中:

User\AppData\Local\Google\Chrome\User Data\Default\Favicons
。我们可以猜测本地图标没有存储在。


2
投票

一旦我使用两行代码解决了它

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

如果有帮助的话,还可以将 favicon.ico 命名为此名称并保留在 webroot 文件夹中。


2
投票

我通过将

favicon.ico
重命名为
new_name.ico
解决了这个问题。它适用于 Safari 和 Chrome。

<head>
    <link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='logo.ico') }}">
</head>

1
投票

嗯,我遇到了与 Google Chrome 类似的问题,favicon 无法正确显示,问题是我使用的 .ico 是 16x16 和 32x32 我只是使用了更大的图像,它适用于所有浏览器。


-1
投票

在 Chrome 中工作您所需要的只是一个带有图标和网站的文件夹,然后 html 应如下所示(请确保图标名为 favicon.ico!)

link rel='快捷图标' type='image/x-icon' href='C:\Website/favicon.ico

© www.soinside.com 2019 - 2024. All rights reserved.