如何在 React 中引用本地图像?

IT技术 reactjs
2021-04-06 23:48:44

如何从本地目录加载图像并将其包含在reactjs img src标签中?

one.jpeg在与我的组件相同的文件夹中调用一个图像,我在我的函数中尝试了两者<img src="one.jpeg" />但图像没有显示。此外,我无权访问文件,因为该项目是使用官方命令行 util创建的<img src={"one.jpeg"} />renderwebpack configcreate-react-app

更新:如果我首先导入图像import img from './one.jpeg'img src={img}img src={'image_name.jpeg'}.

6个回答

首先将 src 包装在 {}

那么如果使用 Webpack;代替: <img src={"./logo.jpeg"} />

您可能需要使用 require:

<img src={require('./logo.jpeg')} />


另一种选择是首先导入图像:

import logo from './logo.jpeg'; // with import

或者 ...

const logo = require('./logo.jpeg); // with require

然后插上...

<img src={logo} />

我会推荐这个选项,特别是如果你要重复使用图像源。

这里缺少一个事实,至少在 webpack 4 中,要使用的加载器是 url-loader 而不是文件 one 或 previous
2021-05-24 23:48:44
使用<img src={require('./logo.jpeg').default} /> 对我有用
2021-05-26 23:48:44
@انعامالرحمٰن - 这里有一些评论stackoverflow.com/questions/31354559/...但是 TL;DR 不是,没有性能差异。
2021-06-01 23:48:44
注意不要忘记.相对 url 开头的 。应该<img src={require('./one.jpeg')} />
2021-06-09 23:48:44
这些方法中的任何一种都会影响图像加载时间等性能吗?如果是这样,哪一个在性能方面更好?
2021-06-12 23:48:44

最好的方法是先导入图片,然后再使用。

import React, { Component } from 'react';
import logo from '../logo.svg';
export default class Header extends Component {
  render() {
    return (
      <div className="row">
        <div className="logo">
          <img src={logo} width="100" height="50" />
        </div>
      </div>
    );
  }
} 
Jason Leach 这是更清洁的方式
2021-05-23 23:48:44
如果您需要在同一组件中重用,这是最好的方法,您可以在没有路径引用的情况下使用它。这是一个很好的做法@JasonLeach
2021-05-24 23:48:44
为什么它是最好的方法?
2021-06-11 23:48:44

公共文件夹内创建一个资产文件夹并相应地放置图像路径。

<img className="img-fluid" 
     src={`${process.env.PUBLIC_URL}/assets/images/uc-white.png`} 
     alt="logo"/>
谢谢,这在文件夹中可能存在或不存在图像的情况下对我很有用,因为它们是根据显示的资源动态导入的。
2021-05-27 23:48:44
为什么这样做?无论我把我的图像文件夹放在哪里,它都不起作用。但现在我把它放在一个名为“assets”的文件夹中,就像你说的那样有效?
2021-06-11 23:48:44

您需要将图像源路径包装在 {}

<img src={'path/to/one.jpeg'} />

require如果使用需要使用webpack

<img src={require('path/to/one.jpeg')} />

你需要使用 require 和 。默认

 <img src={require('./logo.jpeg').default} />
这有效!.default 的目的是什么?
2021-06-10 23:48:44