Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在React JS应用程序中使用webpack服务img标签中的静态图像路径_Javascript_Image_Reactjs_Webpack_Webpack Dev Server - Fatal编程技术网

Javascript 如何在React JS应用程序中使用webpack服务img标签中的静态图像路径

Javascript 如何在React JS应用程序中使用webpack服务img标签中的静态图像路径,javascript,image,reactjs,webpack,webpack-dev-server,Javascript,Image,Reactjs,Webpack,Webpack Dev Server,我正在开发一个React应用程序,在这个应用程序中,我有一个img标记,带有硬编码的图像路径,如下面的render函数中所示 import '../css/styles.scss'; import React from 'react'; import ReactDom from 'react-dom'; import axios from 'axios'; import { List } from './list'; class App extends React.Component { c

我正在开发一个React应用程序,在这个应用程序中,我有一个img标记,带有硬编码的图像路径,如下面的render函数中所示

import '../css/styles.scss';
import React from 'react';
import ReactDom from 'react-dom';
import axios from 'axios';
import { List } from './list';

class App extends React.Component {

constructor(props) {
    super(props);
}


render() {
        return (
            <div className="container">
               < img src="images/logo.png" alt=""/> 
         );
    }
}

const root = document.getElementById('app-container');

ReactDom.render(<App />, root);
我知道我们可以使用网页包中的文件加载器在构建文件夹中生成图像文件夹,并使用
从“\uu路径导入图像”
但是,有没有办法提供上面渲染函数中提到的直接图像路径?
提前感谢

一个解决方案是使用CopyWebpackPlugin。这将把图像从src文件夹复制到build文件夹。然后你的应用程序可以解析相对URL

var CopyWebpackPlugin = require('copy-webpack-plugin');
....
  plugins: [
    new CopyWebpackPlugin([
      { from: './src/images', to: 'images' },
    ]),
  ]

一个解决方案是您必须安装url-loader npm安装--保存开发url加载程序

然后在规则部分的webpack.config文件中添加以下代码

{
      test: /\.(png|jpg)$/,
      loader: 'url-loader?limit=25000'
    },
接下来在应用程序组件中导入图像

从“images/logo.png”导入徽标

并在img标签中传递徽标。像这样

import '../css/styles.scss';
import React from 'react';
import ReactDom from 'react-dom';
import axios from 'axios';
import { List } from './list';
import logo from 'images/logo.png';

class App extends React.Component {

constructor(props) {
    super(props);
}


render() {
        return (
            <div className="container">
               < img src={logo} alt=""/> 
         );
    }
}

const root = document.getElementById('app-container');

ReactDom.render(<App />, root);
import'../css/styles.scss';
从“React”导入React;
从“react dom”导入react dom;
从“axios”导入axios;
从“/List”导入{List};
从“images/logo.png”导入徽标;
类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
}
render(){
返回(

);
}
}
const root=document.getElementById('app-container');
ReactDom.render(,root);

谢谢,我已经说过这是一种选择,但我想我们需要的是文件加载器而不是url加载器?
import '../css/styles.scss';
import React from 'react';
import ReactDom from 'react-dom';
import axios from 'axios';
import { List } from './list';
import logo from 'images/logo.png';

class App extends React.Component {

constructor(props) {
    super(props);
}


render() {
        return (
            <div className="container">
               < img src={logo} alt=""/> 
         );
    }
}

const root = document.getElementById('app-container');

ReactDom.render(<App />, root);