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

React开发中传递props后图片src属性无法正常生效的问题

问题原因

你在JS里直接写的相对路径字符串不会被打包工具(Webpack/Vite等)识别为资源引入,运行时路径会基于当前页面URL解析,而非你编写代码的JS文件所在路径,因此无法匹配到正确的图片资源。

解决方案

方案1:提前导入图片资源(推荐)

打包工具会自动处理导入的图片资源,生成正确的打包后路径,同时支持图片压缩、哈希重命名等优化,适合静态图片场景。
修改LandingPage代码如下:

import React from 'react'
import { ImageBlock } from '../components/ImageBlock'
// 提前导入所有图片
import imgTransform from "../assets/images/mobile/image-transform.jpg"
import imgStandOut from "../assets/images/mobile/image-stand-out.jpg"
import imgGraphic from "../assets/images/mobile/image-graphic-design.jpg"
import imgPhoto from "../assets/images/mobile/image-photography.jpg"

const LandingPage = () => {
    const imageBlocks = [
        {
            src: imgTransform,
            alt: "transform"
        },
        {
            src: imgStandOut,
            alt: "stand out"
        },
        {
            src: imgGraphic,
            alt: "graphic design"
        },
        {
            src: imgPhoto,
            alt: "photography"
        }
    ]

    return (
        <div className="l-home-wrapper">
            <ImageBlock image={imageBlocks[0]}/>
        </div>
    )
}

export default LandingPage

ImageBlock组件无需修改即可正常使用。

方案2:使用public文件夹静态资源

如果需要动态拼接图片路径,可以把整个assets文件夹移动到项目根目录的public文件夹下,直接使用基于public目录的绝对路径:

const imageBlocks = [
    {
        src: "/assets/images/mobile/image-transform.jpg",
        alt: "transform"
    },
    // 其余图片按同样格式修改路径即可
]

排查技巧

打开浏览器开发者工具的「网络」面板,筛选img请求,查看图片实际请求的完整路径,和本地图片的真实路径比对,可快速定位路径解析偏差问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:45:04