刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不能打包进我们的目标文件夹里(bundle)。下面我们就来分析下在webpack项目中图片的应用场景。
在实际生产中有以下几种图片的引用方式:
1. HTML文件中img标签的src属性引用或者内嵌样式引用
<img src="/UploadFiles/2021-04-02/photo.jpg">2. CSS文件中的背景图等设置
.photo { background: url(photo.jpg); }3. JavaScript文件中动态添加或者改变的图片引用
var imgTempl = '<img src="/UploadFiles/2021-04-02/photo.jpg">4. ReactJS中图片的引用
import React from 'react'; import ReactDOM from 'react-dom'; class App extends React.Component { render() { return (<img src='photo.jpg' />); } } ReactDom.render(<App />, document.querySelector('#container'));url-loader
在 webpack 中引入图片需要依赖 url-loader 这个加载器。
安装:
npm install url-loader --save-dev当然你可以将其写入配置中,以后与其他工具模块一起安装。
在 webpack.config.js 文件中配置如下:
module: { loaders: [ { test: /\.(png|jpg)$/, loader: 'url-loader"htmlcode">module: { loaders: [ { test: /\.(png|jpg)$/, loader: 'url-loader"text-align: center">在 main.css 中引用了同级 images 文件夹下的 bg.jpg 图片
background-image: url(./images/bg.jpg);通过之前的配置,使用 $ webpack 命令对代码进行打包后生成如下目录
打包目录中,css 文件和 images 文件夹保持了同样的层级,可以不做任务修改即能访问到图片。区别是打包后的图片加了 hash 值,bundle.css 文件里引入的也是有hash值的图片。
background-image: url(images/f593fbb9.bg.jpg);(上例中,使用了单独打包css的技术,只是为了方便演示)
publicPath
output.publicPath 表示资源的发布地址,当配置过该属性后,打包文件中所有通过相对路径引用的资源都会被配置的路径所替换。
output: { path: 'dist', publicPath: '/assets/', filename: 'bundle.js' }main.css
background-image: url(./images/bg.jpg);bundle.css
background-image: url(/assets/images/f593fbb9.bg.jpg);该属性的好处在于当你配置了图片 CDN 的地址,本地开发时引用本地的图片资源,上线打包时就将资源全部指向 CDN 了。
但是要注意,如果没有确定的发布地址不建议配置该属性,否则会让你打包后的资源路径很混乱。
JS中的图片
初用 webpack 进行项目开发的同学会发现:在 js 或者 react 中引用的图片都没有打包进 bundle 文件夹中。
正确写法应该是通过模块化的方式引用图片路径,这样引用的图片就可以成功打包进 bundle 文件夹里了
js
var imgUrl = require('./images/bg.jpg'), imgTempl = '<img src="/UploadFiles/2021-04-02/'+imgUrl+'">react
render() { return (<img src={require('./images/bg.jpg')} />); }HTML中的图片
由于 webpack 对 html 的处理不太好,打包 HTML 文件中的图片资源是相对来说最麻烦的。这里需要引用一个插件—— html-withimg-loder
$ npm install html-withimg-loader --save-devwebpack.config.js 添加配置
module: { loaders: [ { test: /\.html$/, loader: 'html-withimg-loader' } ] }在 bundle.js 中引用 html 文件
import '../index.html';这样 html 文件中的图片就可以被打包进 bundle 文件夹里了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
帝王谷资源网 Design By www.wdxyy.com广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com帝王谷资源网 Design By www.wdxyy.com暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 【原神】V5.1攻略 | 纳西妲一图流攻略
- 群星.2003-重遇80·感动今天的都市人2CD【SONY】【WAV+CUE】
- 希文.2024-沉溺【StreetVoice】【FLAC分轨】
- 韩红.2005-精丫麒麟童】【WAV+CUE】
- 2D像素风日式美学动作游戏《雨魂》将登陆Xbox Series
- 《龙腾世纪4》评分造假?仅将评测代码给好评媒体!
- 《怪猎荒野》推出蜘蛛恐惧症设定 蜘蛛秒变史莱姆
- 《张韶涵单8CD+无损单曲合集》[WAV/FLAC][6.5G]
- 自然声带《大自然 雨声 白噪音》[320K/MP3][135.32MB]
- 自然声带《大自然 雨声 白噪音》[FLAC/分轨][416.27MB]
- 2024年度计划曝光!《暗黑破坏神:不朽》X《魔兽世界》11月开启联动
- 逆流而上!成都Wolves后发制人韧性十足!——《第五人格》2024秋季赛第四周赛报
- 复归之刻,七烛庆典,狼人杀七周年掌门表演赛活动来袭!
- 炉石传说野兽流最终阵容推荐 酒馆战棋野兽流最终阵容图文一览
- 炉石传说野猪人流最终阵容推荐 酒馆战棋野猪人流最终阵容图文一览