webpack中图片的引用

Posted 申小贺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webpack中图片的引用相关的知识,希望对你有一定的参考价值。

module:{
         rules: [
      {
        test: /\.css$/,
        use: [ style-loader, css-loader ]
      },
      {
        test: /\.png$/,
        use: { loader: url-loader, options: { limit: 100000 } },
      },
      {
        test: /\.jpg$/,
        use: [ file-loader ]
      }
    ]
    
    }

首先安装上面所用到的loader.也可以不用file-loader,url-loader本身就是基于file-loader的。
url-loader封装了file-loader。url-loader不依赖于file-loader,即使用url-loader时,只需要安装url-loader即可,不需要安装file-loader,因为url-loader内置了file-loader

rules: [
{
test: /\.css$/,
use: [ ‘style-loader‘, ‘css-loader‘ ]
},
{
test: /\.(png|jpg)$/,
use: { loader: ‘url-loader‘, options: { limit: 100 } },
}
]



1.在js文件中引用图片文件时,需要使用require(‘img.png‘)进行引入。

document.getElementById("app").style.backgroundImage=url(+require(./3.jpg)+);

或者

var imgUrl=require(../images/1.jpg);

document.getElementById("app").style.backgroundImage=url(‘+imgUrl+‘)‘;
);

最终在dist的目录下会出现该jpg文件。不能再js里直接写路径如(url(‘./3.jpg‘)),因为打包时所有js代码不会改变,路径就还是这个路径,但是打包后的文件输出路径和原来不一样了,路径就会找不到。

2.在css中,就可以按照原始的方法引入图片了。file-loader(url-loader)会将url(‘./3.jpg‘)转换为url(require(‘./3.jpg‘)),打包后在dist目录下会出现该图片文件。

body {
  padding: 50px;
  font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
  background: url(../images/2.jpg) no-repeat;
  width:100%;
  height:500px;
}

 

3.在html中,如果按照原始的方法设置图片路径,打包后的文件路径也是不会改变的。所以在dist目录下,文件的路径就会找不到。

 

















以上是关于webpack中图片的引用的主要内容,如果未能解决你的问题,请参考以下文章

webpack踩坑之路 ——图片的路径与打包

webpack---url-loader 图片路径问题

Webpack前端项目打包配置

webpack引用动态资源路径错误的解决方案

vue-cil和webpack中本地静态图片的路径问题解决方案

vue-cil和webpack中本地静态图片的路径问题解决方案