若是咱们但愿在页面引入图片(包括img的src和background的url)。当咱们基于webpack进行开发时,引入图片会遇到一些问题。css
其中一个就是引用路径的问题。拿background样式用url引入背景图来讲,咱们都知道,webpack最终会将各个模块打包成一个文件,所以咱们样式中的url路径是相对入口html页面的,而不是相对于原始css文件所在的路径的。这就会致使图片引入失败。这个问题是用file-loader解决的,file-loader能够解析项目中的url引入(不只限于css),根据咱们的配置,将图片拷贝到相应的路径,再根据咱们的配置,修改打包后文件引用路径,使之指向正确的文件。html
另外,若是图片较多,会发不少http请求,会下降页面性能。这个问题能够经过url-loader解决。url-loader会将引入的图片编码,生成dataURl。至关于把图片数据翻译成一串字符。再把这串字符打包到文件中,最终只须要引入这个文件就能访问图片了。固然,若是图片较大,编码会消耗性能。所以url-loader提供了一个limit参数,小于limit字节的文件会被转为DataURl,大于limit的还会使用file-loader进行copy。vue
url-loader和file-loader是什么关系呢?简答地说,url-loader封装了file-loader。url-loader不依赖于file-loader,即便用url-loader时,只须要安装url-loader便可,不须要安装file-loader,由于url-loader内置了file-loader。经过上面的介绍,咱们能够看到,url-loader工做分两种状况:1.文件大小小于limit参数,url-loader将会把文件转为DataURL;2.文件大小大于limit,url-loader会调用file-loader进行处理,参数也会直接传给file-loader。所以咱们只须要安装url-loader便可。webpack
vue-cli建立url-loader的工程中配置以下:web