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

React中使用Props传递本地图片路径时图片无法加载的解决方法

React Props传递图片URL无法加载的解决办法

你的问题出在src目录下的图片资源引用方式:React项目中,直接用字符串拼接的相对路径(../../images/${img})引用src内的图片时,webpack无法正确解析这个路径——因为编译后组件的文件结构会变化,webpack不会处理动态拼接的字符串路径,导致图片找不到。

下面是两种可行的解决方式:

方式一:通过import导入图片后传递props(推荐)

和你导入star图片的逻辑一致,先在父组件(App.js)里导入目标图片,再把导入后的变量作为props传给Card组件:

修改App.js:

import './App.css';
import Nav from './Components/Nav/Nav';
import Card from './Components/Card/Card';
// 导入目标图片,注意路径要匹配你的项目结构(假设images在src根目录下)
import lessonImage from './images/image 12.png';

function App() {
  return (
    <div className="App">
      <Nav />
      <Card 
        img={lessonImage} // 传递导入后的图片变量
        rating="5.0"
        reviewCount={6}
        country="USA"
        title="Life Lessons with Katie Zaferes"
        price={136}
      />
    </div>
  );
}

export default App;

然后修改Card.js中的图片引用:

// ...其他代码
<img className="image" src={img} />
// ...其他代码

这种方式下,webpack会把图片作为资源模块处理,自动生成正确的编译后路径,确保图片能正常加载。

方式二:将图片放在public文件夹下使用绝对路径

如果不想用import的方式,可以把图片移动到项目根目录的public文件夹下(比如public/images/image 12.png),然后在Card组件中使用相对于网站根目录的绝对路径:

// Card.js中修改图片src
<img className="image" src={`/images/${img}`} />

public文件夹下的资源会被webpack直接复制到构建产物的根目录,不会被编译处理,所以可以通过/images/xxx.png这种绝对路径直接访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 07:24:24