You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firefox页面刷新后Base64 JPEG图片消失问题解决咨询

解决Firefox中刷新后Base64 JPEG图片消失的问题

问题场景

我们的企业级React + TypeScript项目中,会抓取网站图片转成Base64格式存入数据库,前端取出后通过<img>标签展示。遇到一个Firefox特有的问题:

  • 首次打开页面时,JPEG和PNG图片都能正常加载
  • 在地址栏回车刷新或按F5刷新后,JPEG图片消失,PNG仍正常显示
  • DOM中<div className="imgHolder">和对应的<img>标签都存在,控制台无任何报错或警告
  • Chrome中多次刷新无异常,Ctrl+S保存页面后本地打开也正常

问题根源

看代码里的<img>标签src拼接逻辑:

<img src={"data:image/jpeg;base64, " + jpgbase64} />

data:image/jpeg;base64,后面多了一个空格,Firefox在页面刷新时对data URI的格式校验比首次加载更严格,这个多余的空格导致浏览器无法正确解码JPEG的Base64数据。而PNG图片不受影响,是因为Firefox对PNG的解析容错性更高。

解决方案

去掉data:image/jpeg;base64,后面的空格,使用标准格式拼接Base64字符串,同时建议统一修正PNG的拼接逻辑,保持格式一致:

const App = (): JSX.Element => {
  const jpgbase64 = "/9j/4AAQSkZJRgABAQAAAQABAA .... nveHWYNjqKqrk5I7zc/wAvhOHaHTwM/wDeA/7BPVLtD+OAIPmZfad";
  const pngbase64 = "iVBORw0KGgoAAAANSU .... lCgQUKJAQIkCASUKBJQoEFCiQECJAgElCgSUKBBQokBAiQIBJQoElCgQUKJAQIkCASUKBJQoEFCiQECJAgElCgSUKBBQokBAiQIBJQoElCgQUKJAQIkCASUKBJQoEFCiQECJAgElCgSUKBBQokBAiQIBJQoElCgQUKJAQIkCASUKBJQoEFCiQECJAgElCgSUKBBQokBAiQIBJQoElCgQUKJAQIkCAaX/AcrFIKL9KpbnAAAAAElFTkSuQmCC";

  return (
    <>
      <span className="fakeHtml">{"<div> with base64 JPEG and PNG <img>s:"}</span>
      <div className="imgHolder">
        <img src={`data:image/jpeg;base64,${jpgbase64}`} />
        <img src={`data:image/png;base64,${pngbase64}`}  />
      </div>
    </>
  );
};

export default App; 

验证效果

修改后,在Firefox中无论首次加载还是刷新页面,JPEG和PNG图片都能正常显示,符合预期。

内容的提问来源于stack exchange,提问作者Eugene Golovko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:41:11