Reactjs 如何在React中引用本地映像?
如何从本地目录加载图像并将其包含在Reactjs 如何在React中引用本地映像?,reactjs,Reactjs,如何从本地目录加载图像并将其包含在reactjs img src标记中 我的组件所在的文件夹中有一个名为one.jpeg的图像,我在渲染函数中尝试了和,但图像没有显示。此外,我没有访问webpack config文件的权限,因为项目是使用官方create react app命令行util创建的 更新:如果我首先使用import img from./one.jpeg'导入图像,并在img src={img}中使用它,这是可行的,但是我有太多的图像文件要导入,因此,我想以img src={image
reactjs img src
标记中
我的组件所在的文件夹中有一个名为one.jpeg
的图像,我在渲染
函数中尝试了
和
,但图像没有显示。此外,我没有访问webpack config
文件的权限,因为项目是使用官方create react app
命令行util创建的
更新:如果我首先使用
import img from./one.jpeg'
导入图像,并在img src={img}
中使用它,这是可行的,但是我有太多的图像文件要导入,因此,我想以img src={image\u name.jpeg}
的形式使用它们 您需要将图像源路径包装在{}
<img src={'path/to/one.jpeg'} />
首先,在
{}
<img src={'path/to/one.jpeg'} />
如果使用网页包;
而不是:
您可能需要使用以下命令:
另一个选项是首先导入图像,如下所示:
从“./logo.jpeg”导入徽标;//使用导入
或者
const logo=require('./logo.jpeg);//需要时
然后把它插上
我建议您使用此选项,尤其是在重复使用图像源时。最好的方法是先导入图像,然后使用它
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>
);
}
}
import React,{Component}来自'React';
从“../logo.svg”导入徽标;
导出默认类头扩展组件{
render(){
返回(
);
}
}
从“/img/one.jpg”导入图像;
类图标扩展了React.Component{
render(){
返回(
);
}
}
导出默认图标;
导入图像的最佳方法是
import React, { Component } from 'react';
// image import
import CartIcon from '../images/CartIcon.png';
class App extends Component {
render() {
return (
<div>
//Call image in source like this
<img src={CartIcon}/>
</div>
);
}
}
import React,{Component}来自'React';
//图像导入
从“../images/CartIcon.png”导入CartIcon;
类应用程序扩展组件{
render(){
返回(
//像这样在源代码中调用图像
);
}
}
我用过这种方法,它很有效。。。我希望你有用
const logofooter = require('../../project-files/images/logo.png');
return(
<div className="blockquote text-center">
<img src={logofooter} width="100" height="80" />
<div/>
);
const logofooter=require('../../project files/images/logo.png');
返回(
);
从“React”导入React;
从“./img/one.jpg”导入图像;
类映像扩展了React.Component{
render(){
返回(
);
}
}
导出默认图像我的答案基本上与Rubzen非常相似。顺便说一句,我使用图像作为对象值。 有两个版本适合我:
{
"name": "Silver Card",
"logo": require('./golden-card.png'),
或
没有包装器-但这也是不同的应用程序
我还检查了“导入”解决方案,在少数情况下它是有效的(这并不奇怪,在React中的pattern App.js中应用了该解决方案),但在我上面的情况下就不一样了。在public文件夹中创建一个assets文件夹并相应地放置图像路径
正如评论中提到的,您可以将图像放在公用文件夹中。Create React App的文档中也解释了这一点:我找到了实现这一点的另一种方法(这是一个功能组件):
const Image=({icon})=>{
const Img=require(`./path_to_your_file/${icon}.svg`);
返回
}
希望有帮助 你有两种方法 弗斯特 导入类顶部的图像,然后在
}
}
第1步:从“/img/icon.png”导入MyIcon
步骤2:
<img
src={MyIcon}
style={{width:'100%', height:'100%'}}
/>
constphoto=require(`.././uploads/images/${obj.photo}`)。默认值;
...
将图像放在公用文件夹中,或在公用文件夹中创建子文件夹并将图像放在那里。
例如:
completative gradive.jpg
放在public/static/images
上,然后您可以作为对于想要使用多个图像的人来说,一个一个地导入它们当然是个问题。解决方案是将“图像”文件夹移动到公用文件夹。因此,如果您在public/images/logo.jpg上有一个图像,您可以这样显示该图像:
function Header() {
return (
<div>
<img src="images/logo.jpg" alt="logo"/>
</div>
);
}
函数头(){
返回(
);
}
是,不需要在源代码中使用/public/
进一步阅读:.从“./logo.jpeg”导入徽标;//进口的 然后把它插上
就是这样。您可以创建一个名为example images.js的文件,并在其中引用您的所有应用程序资源,然后将该组件导入您需要显示图像的所有其他组件中。可能的重复请参见我实际上也有类似问题,我的图像已导入index.jsx文件中,我在webpack中有加载程序,编译面工作正常,因为确实在我的server/public/js文件夹中创建了一个带有随机数的图像副本,它的正确路径在bundler中,但我无法可视化图像。同样奇怪的是,当我写到index.js时,它是在server/public/js中生成的,而不是在server/public/img中生成的。注意不要忘记相对url开头的
。应该是
这些方法中是否有任何一种会影响图像加载时间之类的性能?如果是这样的话,哪一个在性能方面更好?@除了TL,这里还有一些评论;DR是否,没有性能差异。这里缺少一个事实,即至少在webpack 4中,要使用的加载程序是url加载程序,而不是文件加载程序或以前的加载程序。为什么这是最好的方法?如果需要在同一组件中重用,则可以使用它而无需路径引用。这是一个很好的实践@jasonleach它是一种更干净的方式不支持src/之外的相对导入。要做到这一点,您必须将图像保存在src/中,而src/不是recommended@toing_toing为什么不建议将图像保存在src中?T
const goldenCard = require('./golden-card.png');
{ "name": "Silver Card",
"logo": goldenCard,
const Image = ({icon}) => {
const Img = require(`./path_to_your_file/${icon}.svg`).ReactComponent;
return <Img />
}
<img
src={MyIcon}
style={{width:'100%', height:'100%'}}
/>
const photo = require(`../../uploads/images/${obj.photo}`).default;
...
<img src={photo} alt="user_photo" />
src={'/completative-reptile.jpg'}
src={'/static/images/completative-reptile.jpg'}
function Header() {
return (
<div>
<img src="images/logo.jpg" alt="logo"/>
</div>
);
}