• webpack4打包html中img后src为“[object Module]”问题(已解决)


    首先复习一下Webpack4打包图片的三种方式

    1. JS中路径赋值

    1 import logo from './logo.png' // 把图片引入,返回的结果是一个新的图片地址
    2 let image = new Image();
    3 console.log(logo)
    4 image.src = logo; // 图片路径赋值
    5 document.body.appendChild(image);

    2. CSS中的背景图片

    div{
       background: url("./logo.png");
    }

    3. HTML中<img>标签

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8"/>
     5     <meta name="viewport" content="width=decvice-width, initial-scale=1.0"/>
     6     <meta http-equive="X-UA-Compatible" content="ie = edge"/>
     7     <title>这是标题</title>
     8     <style>body{background: pink;}</style>
     9 </head>
    10 <body>
    12     <div>内容项</div>
    13     <img src="./logo.png" alt="logo3"/>
    14 </body>
    15 </html>

    使用 html-withimg-loader 结合url-loader / file-loader 加载器实现项目中的路径解析。

     1 {
     2     test: /.html$/, // 正则匹配html结尾的文件
     3     use:'html-withimg-loader'
     4 },
     5 {
     6     test: /.(png|jpg|gif)$/, // 正则匹配图片文件
     7     // 做一个限制,当图片小于多少Byte时,将图片转成base64格式的字符串
     8     // 否则用file-loader产生真实的图片
     9     use: {
    10     loader: 'url-loader',
    11       options: {
    12         limit: 500*1024,//大于或等于 500*1024Byte,按照相应的文件名和路径打包图片
    13         name:'images/[name]-[hash:5].[ext]' //images:图片打包的文件夹;
    14             //[name].[ext]:设定图片按照本来的文件名和扩展名打包,不用进行额外编码
    15             //[hash:5]:项目中如果两个文件夹中的图片重名,打包图片就会被覆盖,加上hash值的前五位作为图片名避免重名。
    16       }
    17     }
    18 },

    问题:

    打包后发现只有HTML中<img>标签中的图片加载不出来。

    查看该图片打包后的路径信息: src="{"default":"[hash:5].png"}" 

    且控制台输出:

    GET http://localhost:xxxx/%7B%22default%22:%22[hash:5].png%22%7D 404 (Not Found)

    原因是file-loader在新版本中esModule默认为true,因此手动设置为false

    use: {
      loader: 'url-loader',
      esModule: false, // 这里设置为false
    }

    这样就可以正常打包了。

  • 相关阅读:
    Qt代码覆盖率code coverage(VS版)
    Qt下Doxygen使用
    QMultiMap使用
    Qt在VS(Visual Studio)中使用
    Qt语言家(Qt Linguist)更新翻译报错Qt5.9MinGW
    Qt Creator插件Todo
    QWidget一生,从创建到销毁事件流
    Qt排序
    QTcpSocketQt使用Tcp通讯实现服务端和客户端
    Qt Creator子目录项目类似VS解决方案
  • 原文地址:https://www.cnblogs.com/lynn-z/p/12966469.html
Copyright © 2020-2023  润新知