Javascript 网页包文件加载器未在生产生成中加载资产文件夹

Javascript 网页包文件加载器未在生产生成中加载资产文件夹,javascript,reactjs,webpack,netlify,webpack-file-loader,Javascript,Reactjs,Webpack,Netlify,Webpack File Loader,我已经在netlify中部署了react应用程序内置网页包。我看到CSS、字体和其他所有加载都很好,但没有看到assets/images文件夹下的图像 以下是live site源路径中的我的文件夹结构: my webpack.config.js: const path=require('path'); const webpack=require('webpack'); const HtmlWebpackPlugin=require('html-webpack-plugin'); module

我已经在netlify中部署了react应用程序内置网页包。我看到CSS、字体和其他所有加载都很好,但没有看到assets/images文件夹下的图像

以下是live site源路径中的我的文件夹结构:

my webpack.config.js:

const path=require('path');
const webpack=require('webpack');
const HtmlWebpackPlugin=require('html-webpack-plugin');
module.exports={
条目:['./src/index.js','@babel/polyfill'],
模块:{
规则:[
{
测试:/\(js|jsx)$/,
排除:/node_模块/,
使用:{
加载器:“巴别塔加载器”,
选项:{
预设:['@babel/preset react','@babel/preset env'],
},
},
},
{
测试:/\.css$/i,
排除:/node_模块/,
使用:[
“样式加载器”,
{
加载器:“css加载器”,
选项:{
模块:对,
},
},
],
},
{
测试:/\(gif | png | jpe?g)$/,
使用:[
{
加载器:“文件加载器”,
选项:{
//名称:'[name].[ext]',
//名称:'[path][name].[hash].[ext]',
名称:'/src/assets/images/[hash].[ext]',
//outputPath:'src/assets/images/',
},
},
],
},
],
},
开发服务器:{
主机:'192.168.1.10',//您的ip地址,
历史上的倒退:是的,
contentBase:“./build”,
disableHostCheck:true,
},
决心:{
扩展:['*'、'.js'、'.jsx'],
},
输出:{
path:path.resolve(uu dirname,“/dist”),
文件名:“bundle.js”,
公共路径:“/”,
},
插件:[
新建webpack.HotModuleReplacementPlugin(),
新HtmlWebpackPlugin({
文件名:“index.html”,
是的,
模板:path.resolve(uu dirname,'index.html'),
}),
],
开发服务器:{
contentBase:“./build”,
热:是的,
},

};您需要将映像文件复制到生成目录

为此,请安装webpack复制插件:
copy webpack plugin

npm install copy-webpack-plugin --save-dev
和网页包配置应为:

// import copy plugin
const CopyPlugin = require('copy-webpack-plugin');

module.exports = {
    entry: ['./src/index.js', '@babel/polyfill'],
    module: {

       ...

    },
    plugins: [

        ...

        new CopyPlugin({
            patterns: [
                {
                    from: path.resolve(__dirname, '/src/assets/images'),
                    to: path.resolve(__dirname, 'dist')
                }
            ]
        }),
     ]
};

有关详细信息,请参见您的配置。您是否仅在服务器中部署静态文件?如果我没有弄错,我将在src/assets/images中添加所有映像文件并构建它。我从那里访问图像,而不是从任何其他服务器。在生成的./dist文件夹中,我看到了资产。但当部署在netlifyI上时,这并不意味着您是否在服务器中的
dist/index.html
上为您的网站提供服务?这意味着服务器根目录是
dist
目录,因此当您请求具有公共路径的资产时,可以使用
yourDomain/assets/image/logo.png
。是的,我看到该站点是从dist/index.html提供的。但是,我不想将所有图像src路径更改为yourDomain/assets/image/logo.png,这是一个痛苦的过程。我怀疑是否有东西在本地使用相同的路径,配置中的一些更改是否会使这个在prod中工作?或者每次我部署时,我应该将其更改为公共路径吗?这是我目前面临的问题所在的站点-这也没有解决它。。我仍然没有看到dist文件夹下的资产。您可以在以下位置找到最新构建的项目:这是最新的配置更改-输出:{path:path.join({template:path.resolve(“/dist”),文件名:“bundle.js”,publicPath:“/”,},插件:[new webpack.HotModuleReplacementPlugin(),new HtmlWebpackPlugin({template:path.resolve(./dist/index.html))新的CopyPlugin({patterns:[{from:path.resolve({src/assets/images”),到:path.resolve({dirname,“dist”),},},],}),你明白了吗?