在组件内部使用 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" />
您还可以通过阅读获得一些线索:
我正在学习反应。我的 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" />
您还可以通过阅读获得一些线索: