响应GET /favicon.ico请求不显示浏览器标签图标

Responding to GET /favicon.ico request does not show the browser tab icon

我有一个网络服务器,因为我的 HTML 主页面不包含网络图标(只是一个基本模板)

  "HTTP/1.1 200 OK"
  Content-Type: text/html
  Connection: close

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>Title of the document</title>
    </head>
    
    <body>
      <h1>This is a heading</h1>
      <p>This is a paragraph.</p>
    </body>
    </html>

chrome 和 Mozilla 还将发送一个额外的 HTTP 请求:

GET /favicon.ico

我想通过发送 PNG 文件来响应此请求,问题是即使我成功 return /favicon.ico 请求,选项卡图标也没有显示。

Ny 对 GET /favicon.ico 的响应如下所示:

  HTTP/1.1 200 OK
  Content-Type: text/plain
  Connection: close

  data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAB0CAYAAABzNJfPAAAABGdBTUEAALGP.... 

但是标签栏上没有显示图标。我得到这个:

我所期望的是图标会像这样显示在选项卡中

您可能会说只在主 HTML 中包含图标。但这将是“作弊”,因为我打算做的是处理来自浏览器的 /favicon.ico 请求。如果我这样做,我只是在避免这个问题,而不是解决它

您的 content-type header 设置为 text/plain 这使得浏览器将其读取为纯文本,而不是图像。尝试将其设置为 image/png。另外,不要将图像作为 base64 发送,只需发送原始图像即可。我不确定你使用的是什么网络服务器,所以我无法帮助你如何将它作为原始图像发送。