如何防止浏览器请求网站图标?

30

有没有一些指令可以在我的HTML中使用,告诉浏览器不要请求网站图标?


3
请参考这个链接:https://dev59.com/5HM_5IYBdhLWcg3wlEBH该链接中讨论了如何防止网站发出针对 favicon.ico 文件的请求。 - Benjamin
3
/favicon.ico重定向到另一台服务器上托管的1GB文件怎么样? :) - meder omuraliev
2
也许如果你将浏览器指向一些愚蠢的东西(例如localhost),它就不会请求favicon。但我想知道,对于favicon的请求真的那么重要吗?难道你不能快速地将服务器配置为404吗? - derobert
4个回答

24

添加这行。

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

这将一个空的数据URL分配给网站图标的<link>元素,该元素指定外部资源的位置。这个技巧可以阻止用户浏览器自动发送获取网站图标的HTTP请求。

这里有更多细节


15

不,我认为没有。来自维基百科的说明:

大多数网络浏览器不需要任何HTML就可以获取符合约定文件名和类型(favicon.ico)的网站根目录中的favicon。如果在HTML页面加载完成后没有检测到favicon链接并且浏览器历史记录中也没有以前的访问记录,则会自动请求一个favicon.ico [8]。

你唯一能做的就是明确地将浏览器指向不同的位置(例如返回一个204 no content)。

<link rel="shortcut icon" href="http://www.example.com/my_empty_resource" />

9
您可以尝试将<link>指向数据URL。但请注意,IE浏览器不支持此方法。

示例(来自11011.net):

<link rel="icon" type="image/gif" href="data:image/gif;base64,R0lGODlhEAAQAIAAAAAAAAAAACH5BAkAAAEALAAAAAAQABAAAAIgjI+py+0PEQiT1lkNpppnz4HfdoEH2W1nCJRfBMfyfBQAOw==" />

已编辑以反映Pekka对IE的关注。


2
有趣的想法,但在IE中不起作用。如果我没记错的话,数据URI的使用在那里仅限于图像源...不过还是值得一试,也许它会阻止获取它。 - Pekka
有些人建议在href中使用“about:blank”。https://webmasters.stackexchange.com/questions/34544/can-i-instruct-the-browser-not-to-look-for-a-favicon - ADJenks

1
如果您没有使用HTML并且它是由Flask或某些框架自动生成的,您可以在应用程序中添加一个虚拟路由,只需返回虚拟文本即可解决此问题。
例如Python Flask应用程序。
@app.route('/favicon.ico')
def favicon():
    return 'dummy', 200

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接