【问题标题】:Error while trying to add image to react project尝试添加图像以响应项目时出错
【发布时间】:2016-11-02 12:33:04
【问题描述】:

我正在做一个反应项目。我正在尝试将图像添加到我的一个组件中。我在我的项目结构树中创建了一个名为“images”的目录,并将我的图像放在这个目录中(项目结构的图像附在下面)。我想将此图像作为 src 传递给我的 img 标签。为此,我右键单击图像并选择“复制图像路径”,然后将该路径粘贴到 img 标签的 src 中。但是当我尝试运行它时,我收到一条错误消息“加载资源失败:服务器响应状态为 404(未找到)”。这是我的组件代码和项目结构的屏幕截图。

附:我在 Ubuntu 环境中

export default class CustomizedAppComponent extends Component {
    render(){
        return(
            <div>
                <img src="/home/user/Documents/Tessact-Master/dev/js/images/logo.png"/>
            </div>
        );
    }
}

【问题讨论】:

  • 试试src='./dev/js/images/logo.png'
  • 这看起来像是来自根目录的系统路径。 React 是一个服务器,因此使用来自 react 项目根目录的 http 协议。
  • 如何为您的应用提供服务?以及如何在浏览器中预览?

标签: javascript image reactjs


【解决方案1】:

无需在您的网址中使用 ../ 或 require .. 简单的技巧:从哪里为您的应用程序提供服务非常重要。如果您从 Tessact-Master 为您的应用程序提供服务,那么您的代码应该如下所示

只使用/dev 而不是./dev

export default class CustomizedAppComponent extends Component {
    render(){
        return(
            <div>
                <img src={"/dev/js/images/logo.png"}/>
            </div>
        );
    }
}

【讨论】:

  • 这行得通。谢谢
  • @user3761761 最好为您的解决方案投票一个完美的答案。它可以帮助社区。​​span>
【解决方案2】:

首先,图像的 src 必须相对于使用它的组件的位置。假设 CustomizedAppComponent 位于 componentscontainers 文件夹中,您的图像路径必须如下所示

 "../images/logo.png"/

如果组件再次位于文件夹 components 内的另一个文件夹中,则将路径指定为

"../../images/logo.png"/             // add '../' so on 

此外,如果您使用 webpack 转译您的 jsx,则可能需要在 require 中提及 src,如果没有,则在下面的代码中提及 omit require

export default class CustomizedAppComponent extends Component {
    render(){
        return(
            <div>
                <img src={require("../images/logo.png")}/>
            </div>
        );
    }
}

【讨论】:

  • 你应该不需要使用require。这会让你的 JS 崩溃。
  • @JF 为什么我的 JS 会崩溃。我没有看到它发生在我的案例中。
  • 如果你require()一个图片文件,会出现invalid syntax error,因为二进制文件不是有效的JS。 require() 在给定路径加载文件,执行它,并返回 module.exports 对象。
  • @JF 我已经使用这个语法很长时间了,从来没有遇到任何关于 ti 的问题
  • @JF 看看这个 SO 问题stackoverflow.com/questions/34582405/…。 OP 没有明确指定他使用什么来编译 JSX。
猜你喜欢
  • 2018-03-22
  • 2017-05-04
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多