Base64图片可直接嵌入img标签src属性,格式为data:mimetype;base64,字符串,需确保MIME类型正确、无换行空格;大图不适用,JS动态赋值更利于校验与降级。
Base64 图片可以直接嵌入 HTML 的 标签中,无需额外 HTTP 请求,适合小图标、占位图或离线场景;但体积比原始二进制大 ~33%,不适用于大图。
src 属性里这是最常用也最简单

data: URL 协议中,注意 MIME 类型必须匹配(如 image/png),否则浏览器可能拒绝渲染。
data:;base64,
image/jpeg 写成 image/jpg)会导致图片空白,控制台通常无报错@@##@@
src
适合运行时生成或从 API 获取 Base64 数据的场景,可做校验、降级或懒加载处理。
data:image/xxx;base64, 开头,否则直接赋值会触发 404 请求/^data:image\/\w+;base64,/.test(base64Str)
onload 和 onerror 处理加载结果javascript: 伪协议)const img = document.getElementById('myImg');
const base64Str = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjQwIiBmaWxsPSJyZWQiLz48L3N2Zz4=';
if (/^data:image\/\w+;base64,/.test(base64Str)) {
img.src = base64Str;
} else {
img.src = '/fallback.png';
}
不是所有“Base64 字符串”都能直接塞进 。关键看是否带 data: 前缀、MIME 是否正确、是否含换行符。
base64.b64encode() 返回 bytes,需用 .decode('utf-8') 转字符串,且**不自动加前缀**Buffer.toString('base64') 同样只返回纯 Base64 字符串,需手动拼接 data:image/png;base64,
image/svg+xml,不是 image/svg 或 text/xml
最容易被忽略的是 MIME 类型与实际内容不符——比如把 PNG 文件用 JPEG 的 MIME 发出去,Chrome 可能显示,Firefox 直接静默失败。调试时打开开发者工具的 Network 面板,看图片请求是否标为 “(failed)” 或状态码为 0,再回头检查前缀和类型。