在组件内部使用 React 链接图像

Using React linking images inside of components

我正在学习反应。我的 src 文件夹内的组件文件夹中有一个文件 website_index.js。在我的 src 文件夹中还有一个图像文件夹。我正在尝试 link 轮播中的图片到图像文件夹中的图片,但无论我输入什么路径都找不到它们。这些图片不能显示吗?

有人能告诉我正确的方法吗?

import React, { Component } from 'react';
import { Jumbotron, Carousel } from 'react-bootstrap';

class Home extends Component {

  render() {
    return (
      <Jumbotron>
      <Carousel>
        <Carousel.Item>
          <img width={900} height={500} alt="900x500" src="./images/Ian_FMD_400.jpg"/>
          <Carousel.Caption>
            <h3>First slide label</h3>
            <p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
          </Carousel.Caption>
        </Carousel.Item>
        <Carousel.Item>
          <img width={900} height={500} alt="900x500" src="../images/Ian_FMD_400.jpg"/>
          <Carousel.Caption>
            <h3>Second slide label</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
          </Carousel.Caption>
        </Carousel.Item>
        <Carousel.Item>
          <img width={900} height={500} alt="900x500" src="./src/images/Ian_FMD_400.jpg"/>
          <Carousel.Caption>
            <h3>Third slide label</h3>
            <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
          </Carousel.Caption>
        </Carousel.Item>
      </Carousel>
      </Jumbotron>
    );
  }
}

export default Home;

嗯,你说:

"... I have a file website_index.js inside my components folder inside my src folder."

你还说:

"...Also inside my src folder is an images folder."

所以,你的项目结构是这样的:

源码
|_ 组件
|_ 图片

试试这个:

<img width={900} height={500} alt="900x500"  src={require('../images/Ian_FMD_400.jpg')}/>

一种快速而干净的方法是以与导入或 require() 模块相同的方式导入图像:

import image1 from './path/to/image';

然后从 JSX 引用该图像:

<img width={900} height={500} alt="" src={image1} />

图像的路径可能会自动为您解析,具体取决于您的捆绑器(webpack 等)的设置方式。

另一方面,如果您没有像导入模块那样导入图像(并且您直接从 JSX 或组件内联引用图像路径),则不需要在前面加上image src with ./ (因为它不是导入,它只是一个常规的相对路径),所以只需将 inline src 调用写到 point到图像 就像你在 HTML 中写它一样(路径等于 relative 返回图像目录的路径 相对 HTML 文件):

所以这个:

<img width={900} height={500} alt="" src="./src/images/Ian_FMD_400.jpg" />

可能是:

<img width={900} height={500} alt="" src="images/Ian_FMD_400.jpg" />

所以只是回顾一下,两种导入图像的方式不同:

// option one (imports)
import image1 from './path/to/image/relative/to/COMPONENT';
<img src={image1} />

// option two (relative paths inline)
<img src="path/to/image/relative/to/HTML" />

您还可以通过阅读获得一些线索: