single-page-application - base64 编码网站图标有什么好处?
问题描述
我有这个网络应用程序,其中 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 插件自动对所有作为 JavaScript 导入的资产进行 base64 编码模块(例如import favicon from './assets/favicon.ico'
)。
显然这并没有按预期工作,但最让我印象深刻的是实际的 base64 字符串比favicon.ico
文件本身更重(20k 对 15k)。所以我不确定好处在哪里(如果有的话)。
解决方案
虽然我不知道为什么最初的开发人员会这样设计它,但它对于简单的一体式 html 文件的离线文件呈现是有意义的。
我实际上只是查了一下,因为我正在构建一个超级小的多合一 html 文件。如果它是 base 64 编码到单个 html 文件中,我不必包含额外的文件。
推荐阅读
- json - JQ - 仅顶级键和值的非递归合并
- c# - 创建新的 Azure 资源组项目时出错
- javascript - Discord.js !kick 命令说访问被拒绝,尽管我有这个角色
- reactjs - 使用未定义的属性“参数”反应 js 错误
- powershell - 将 System.Drawing.KnownColor 转换为 ARGB
- python - (Python Selenium)我如何等到元素类发生变化然后做某事?
- python - 如何设置 neovim 运行 qt-console
- sql - SSAS 多维数据集日期时间列转换为毫秒
- sql - How to group on labels in aggregate query to Promscale
- java - SWIG Java 包装扩展接口的 C++ 接口