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

部署React应用时图片存build还是public文件夹?PUBLIC_URL是否指向build目录?

解答

首先明确:process.env.PUBLIC_URL 的值在项目构建阶段就已经固定,和部署时的服务器目录映射规则没有关联:

  • 如果你没有自定义过 PUBLIC_URL 配置(默认情况),该变量取值为空字符串,你拼接出的图片路径实际为 /assets/${coin.itemId}.png。此时部署服务器根目录指向build文件夹时,该路径会直接匹配到build目录下的assets文件夹内的对应资源,完全符合预期。
  • 如果你构建时手动指定过 PUBLIC_URL 取值(比如需要部署到域名子路径时设置为 /xxx),拼接出的路径会带此前缀,此时服务器根目录直接指向build文件夹会出现资源404,需要将对应前缀路径映射到build文件夹才能正常访问。

你当前的写法是React脚手架官方推荐的public目录静态资源访问方式,public目录下的assets文件夹会在构建时完整拷贝到build目录根路径下,只要未自定义PUBLIC_URL,无需额外调整即可正常运行。

你使用的代码正确格式如下:

<img
  alt="Screenshot"
  src={`${process.env.PUBLIC_URL}/assets/${coin.itemId}.png`}
  onClick={() => {
    setImgTrue(true);
    setTempImg(
      `${process.env.PUBLIC_URL}/assets/${coin.itemId}.png`
    );
  }}
/>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:09:03