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

使用create-react-app-buildpack在Heroku部署React应用时图片无法解析

解决Heroku部署React应用时图片资源找不到的问题

看起来你遇到的问题是Webpack在构建时找不到图片资源,导致部署失败。我帮你分析几个可能的原因和对应的解决办法:

1. 修正static.json的root配置

你当前把root设为public/,但对于create-react-app来说,build后的产物默认存放在build/目录下,而create-react-app-buildpack也是基于这个目录完成部署的。所以你需要修改static.json配置:

{
  "root": "build/",
  "routes": {
    "/**": "index.html"
  }
}

之前的配置会让Heroku去public目录找编译后的文件,但实际上你的图片已经被Webpack处理到build目录里了,自然会出现找不到的情况。

2. 改用create-react-app推荐的资源引用方式

在src目录下的组件里引用静态资源时,不要直接用字符串路径,而是通过import引入:

// 在Header.jsx中
import logoWhite from '../../assets/images/logos/logo-white.png';

// 然后在img标签中使用
<img src={logoWhite} alt="White Logo" />

这样Webpack在构建时会自动处理图片资源,把它们复制到build目录的正确位置,并生成正确的引用路径,不会出现文件找不到的问题。

3. 若图片放在public目录,使用绝对路径引用

如果你把图片放在public文件夹里(比如public/assets/images/logos/logo-white.png),那在组件里要使用绝对路径:

<img src="/assets/images/logos/logo-white.png" alt="White Logo" />

因为static.json设置root后,根路径/会指向build(或public)目录,绝对路径能正确定位到资源。

额外检查项

  • 确认项目结构里确实存在src/assets/images/logos/logo-white.png文件,注意Linux环境下文件名区分大小写,别出现拼写错误。
  • 部署前先在本地运行npm run build,检查build目录里是否有处理后的图片文件,确保本地构建流程正常。

按照上面的步骤调整后,应该就能解决图片找不到的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:16:58