在前端开发过程中,在html、css和js中都经常会需要引用图片,引用图片就需要考虑图片引入路径的正确性。当项目进行打包会将元素引用的图片进行抽取放在固定位置,如图1-1与图1-2所示,这就需要对图片的引入位置进行匹配。Angular-cli底层默认使用webpack进行项目压缩与打包,webpack是通过ulr-loader和file-loader配合完成打包后图片路径匹配工作,html中的图片需要使用html-withimg-loader。

图1-1打包后html中新的图片引用位置

图1-2打包后图片放置位置

url-loader与file-loader的区别

file-loader完成的工作是将图片打包到一个固定位置然后将新路径与元素重新匹配,url-loader有一个配置项limit当图片小于limit设置的大小,就将元素转换为base-64编码,当大于这个配置项大小就调用file-loader,也就是说url-loader底层依赖file-loader,但是安装完url-loader后不需要另外安装file-loader。

JavaScript中的图片路径匹配

Js代码中的图片路径匹配处理方式与html和css中处理方式有很大的不同,在js中的图片路径如果你需要进行打包就必须对其进行模块依赖标记,如图1-2所示,不然webpack无法分辨出这是一个图片路径还是一个普通的字符串。值得注意的是在js中使用es6模块语法import *  form形式即可,但是在typescript中图片的依赖标记需要使用不同的标记,本文使用的是common.js的形式,并且require需要在代码中进行声明,如图1-3所示。

图1-2代码中进行依赖标记的图片引用

图1-3对require进行声明

css中的图片路径匹配

css中对图片的引用不需要过多的处理,例如background这种属性对于图片的引用,loader会自动做出处理。

参考链接

html5图片怎么打包,webpack打包图片相关推荐

  1. vue-cl 有一些静态资源不想经过webpack打包那么应该public 下面

    vue-cl3脚手架生成的项目,静态资源要是不想经过webpack打包,那么应该放置在public 文件夹下面,而不是以前的static文件夹下面.先说说vue-cl3 静态资源可以通过两种方式进行处 ...

  2. atool-build脚手架分析与webpack打包原理详解

    最近要做一个js解析markdown的项目,所以当然想到了ant design,不过ant design内部又使用了atool-build脚手架,所以决定好好研究一下.如果有不对的地方还烦请指正.不过 ...

  3. html5图片怎么打包,webpack如何打包图片

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 初学webpack打包图片的时候,会遇到几种情况,需要注意. 首先在webpack中打包图片需要依赖于url-loade ...

  4. webpack 图片的路径与打包

    1. HTML文件中img标签的src属性引用或者内嵌样式引用 <img src="photo.jpg" /> <div style="backgrou ...

  5. vue+webpack项目打包后背景图片加载不出来问题解决

    vue+webpack项目打包后背景图片加载不出来问题解决 参考文章: (1)vue+webpack项目打包后背景图片加载不出来问题解决 (2)https://www.cnblogs.com/mica ...

  6. 解决webpack打包样式url()背景图片问题

    定位错误 项目使用webpack4进行编译,打包后的样式中使用url方法指定的背景图片不能够正常显示 源码戳这里 .bgurl{background-image: url('/images/abc.j ...

  7. webpack打包js文件,图片路径错误,没有将图片打包的问题

    初用 webpack 进行项目开发的同学会发现:在 js 或者 vue 中引用的图片都没有打包进 bundle 文件夹中.这时是需要require的方式进行图片路径的引用,这样引用的图片就可以成功打包 ...

  8. Vue——10 - webpack打包保姆级教程01——打包js、json、css、less、html、背景图片以及图片、字体(Font)文件,devsever,生产环境配置以及css的兼容写法

    目录 一.webpack打包JS文件 1.新建入口文件index.js和mathUtils.js,index.js是依赖于mathUtils.js 2.然后使用webpack命令打包js文件 二.打包 ...

  9. vue如何将图片压缩成webp格式并用webpack打包

    一.vue-cli将图片转化成webp格式 1.安装vue-webp-plugin npm install --save vue-webp-plugin 2.配置webp-plugin(在main.j ...

最新文章

  1. html选择按钮selected,HTML Option defaultSelected用法及代码示例
  2. autoware中的交通灯识别(八)
  3. plotly可视化绘制双子图(subplots)
  4. 走近“颠覆性技术”:量子通信能否取代传统通信?
  5. 【android】getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的作用
  6. 使用 Tye 辅助开发 dotnet 应用程序
  7. jsr250-api_JSON处理的Java API(JSR-353)–流API
  8. [html] 你有使用过output标签吗?说说它的用途有哪些?
  9. 怎样让手中的钱成为生财工具
  10. Python Itertools.chain()用法【将一组迭代对象串联起来,形成一个更大的迭代器】
  11. 白话 discuz加密解密算法,包你懂
  12. 空间三维直线拟合matlab代码
  13. 【Matlab优化预测】贝叶斯网络优化LSTM预测【含源码 1158期】
  14. 纸牌、挖金子源码链接
  15. jdbc连接timesten_采用java链接timesten内存数据库
  16. c语言oj质数还是合数,求数据帝帮忙测试一下代码,已被南洋理工大学的oj搞蒙.....
  17. 华为ensp配置AC+AP多个SSID信号
  18. 【文件管理】-如何规范文件及文件夹命名
  19. NVIDIA 有奖征文活动合集
  20. 计算机为啥启用不了网络发现,win7系统“网络发现”功能启用不了的解决方法...

热门文章

  1. bootstrap4 入门学习
  2. Linux命令新建目录:
  3. C _Who killed Cock Robin (树形dp)
  4. 笔记本onenote绘画快捷键_我的笔记 我的onenote 快捷键
  5. 大家都在这颗红萝卜的驱使下,内卷特别厉害……
  6. kbengine第三方支付流程图
  7. 从同步互斥机制到智能指针使用成本
  8. Lammps之漫谈自由能
  9. 一分钟入门 Babel(下一代 JavaScript 语法的编译器)
  10. 接口幂等性操作学习笔记