【发布时间】:2020-10-10 07:33:43
【问题描述】:
我有这个网络应用程序,其中 favicon 在 HTML 中内联,例如,
<link rel="icon" href="data:image/x-icon;base64,A VERY VERY LONG STRING...">
但是我可以肯定地看到 Chrome 和 Firefox(截至此日期的最新版本)无论如何都会在我的网站根目录处向 favicon.ico 发出请求,例如http://example.com/favicon.ico
如果重要的话:
-
href属性中嵌入的 base64 编码字符串相当大。 - favicon
<link>标签由 react-helmet 管理 - 网站本身并不是特别慢。 (始终保持良好的 Apdex 分数。)
我只能假设当时的开发人员(现在都走了)想要内联网站图标以避免 HTTP 请求,因此编写了一些“基础设施”来支持这一点:即使用 Webpack 插件自动对所有资产进行 base64 编码作为 JavaScript 模块导入(例如 import favicon from './assets/favicon.ico')。
显然,这并没有按预期工作,但最让我印象深刻的是实际的 base64 字符串比 favicon.ico 文件本身更重(20k 对 15k)。所以我不确定好处在哪里(如果有的话)。
【问题讨论】:
-
如果它是一个 SPA,那可能没问题,我同意这是一个微优化(没关系,它不适用于 iOS Safari 等具有自己图标元名称的许多浏览器)。
标签: react-helmet single-page-application favicon react-helmet