老师,我这个没有报错,但是图片就是加载不出来!而且dist里面有生成了两张图片分别在不同路径下

老师,我这个没有报错,但是图片就是加载不出来!而且dist里面有生成了两张图片分别在不同路径下

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
imooc_慕慕 2022-11-02 10:03:29

同学你好,分析如下:

由于没有完成的代码,因此猜测如下:

1、修改完配置之后 是否删除dist文件重新打包;

2、检查index.css文件中的css属性是否修改,参考如下:

https://img1.sycdn.imooc.com//climg/6361cf9309bdab5f08690268.jpg

祝学习愉快~

  • 提问者 张艺兴的宝贝 #1

    index.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
    
    </body>
    
    </html>

    package.json

    {
      "name": "webpack-css-image",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "webpack": "webpack"
      },
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "css-loader": "^6.7.1",
        "file-loader": "^6.2.0",
        "html-webpack-plugin": "^5.5.0",
        "mini-css-extract-plugin": "^2.6.1",
        "webpack": "^5.74.0",
        "webpack-cli": "^4.10.0"
      }
    }

    index.css

    body {
        background-image: url('./img/lay.jpg');
        background-repeat: no-repeat;
    }

    index.js

    import './index.css';

    webpack.config.js

    const path = require('path');
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    const MiniCssExtractPlugin = require('mini-css-extract-plugin');
    module.exports = {
        mode: 'development',
        entry: './src/index.js',
        output: {
            path: path.resolve(__dirname, 'dist'),
            filename: '[name].js'
        },
        plugins: [
            new HtmlWebpackPlugin({
                template: './index.html',
                filename: 'index.html'
            }),
            new MiniCssExtractPlugin({
                filename: 'css/[name].css'
            }),
        ],
        module: {
            rules: [{
                    test: /\.css$/,
                    use: [{
                            loader: MiniCssExtractPlugin.loader,
                            options: {
                                publicPath: '../'
                            }
                        },
                        'css-loader'
                    ]
                },
                {
                    test: /\.(jpg|png|gif)$/,
                    use: [{
                        loader: 'file-loader',
                        options: {
                            name: 'img/[name].[ext]',
                        }
                    }]
                }
            ]
        }
    }

    下面是生成的dist文件夹

    https://img1.sycdn.imooc.com//climg/63622c1f093a65a303660456.jpg

    https://img1.sycdn.imooc.com//climg/63622c3109337f2709801190.jpg

    2022-11-02 16:37:17
  • imooc_慕慕 回复 提问者 张艺兴的宝贝 #2

    同学你好,练习代码一定要跟老师视频中各个插件的版本保持一致,不然会出现未知的bug问题,因为同学使用的是webpack5版本、css-loader也是新版本导致配置也出现了差异,新版本处理图片打包不需要使用file-loader这个插件了,因此参考方案如下:

    1、降低css-loader版本与老师的保持一致;

    2、去掉file-loader插件,只用css-loader就可以了

    https://img1.sycdn.imooc.com//climg/63623e57092536dd03450242.jpg

    将webpack.config.js文件中添加替换如下代码:

    https://img1.sycdn.imooc.com//climg/6362474b0907fd6605280385.jpg

    https://img1.sycdn.imooc.com//climg/63623ed30934816504790126.jpg

    参考学习官方网址

    祝学习愉快~


    2022-11-02 17:58:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师