黑松山资源网 Design By www.paidiu.com
在vue组件的style标签内部有如下一段使用背景图片的css代码
background-image: url("../assets/img/icon_add.png");
在webpack中css-loader的解析配置如下
{ test: /\.(css|less)$/, exclude: path.resolve(__dirname, 'node_modules'), use: ['style-loader', 'css-loader', 'less-loader'] }
打包后在dist目录的发现没有css文件。这是因为css文件被转化成了js文件。
此时启动项目,背景图片引入正确,能够正常显示。
2 将css文件提取到单独的文件目录
使用 mini-css-extract-plugin 将css文件单独提取到dist目录下的css目录下。
2.1 loader配置
{ test: /\.(css|less)$/, exclude: path.resolve(__dirname, 'node_modules'), use: [MiniCssExtractPlugin.loader, 'css-loader', 'less-loader'] }
2.2 plugin配置
new MiniCssExtractPlugin({ filename: 'css/[name][contenthash].css', })
打包后,dist目录结构如下
可以看到此时图片在根目录(dist)目录下,但是css文件处在dist/css/目录下。现在来看一下打包后的css文件是如何引用图片的路径。
2.3 打包结果
background-image: url(bb65a86a2fe7669e483a56b970bea421.png);
可以看到在dist/css目录下没有bb65a86a2fe7669e483a56b970bea421.png图片。因此图片无法正常显示。理想的情况是
background-image: url(../bb65a86a2fe7669e483a56b970bea421.png);
3 解决方案
更改loader的配置如下
{ loader: MiniCssExtractPlugin.loader, options: { // 当前的css所在的文件相对于打包后的根路径dist的相对路径 publicPath: '../' } }, 'css-loader', 'less-loader'
总结
分离css文件导致css背景图片路径错误,解决方案的核心是配置publicPath的值,publicPath的值是css文件所在的文件目录相对于根目录的相对路径值。 比如,根路径是/,css文件所在的目录是/css/,因此相对路径是..
意外问题
为什么webpack打包后,css文件被混入到bundle.js文件中,但是图片没有被混入到bundle.js中???
黑松山资源网 Design By www.paidiu.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
黑松山资源网 Design By www.paidiu.com
暂无评论...
更新日志
2024年09月20日
2024年09月20日
- 《神话时代:重述版》评测:粉丝们的朝花夕拾
- 战锤40K星际战士2先锋职业介绍|先锋职业技能效果一览
- 战锤40K星际战士2重装职业介绍|重装职业技能效果一览
- 交错战线能源发电站推荐角色一览
- 阿波罗乐神之音《第4集出埃及记》[WAV+CUE]
- JohnWrightTrio-SouthSideSoul-1960-2024(24-192)
- AnthonyBruno-Cefalu(2024)[24-96]
- 《地狱潜者2》玩家人数飙升:终于不再削弱玩家了
- 黑神话引力!外媒分享孙悟空英文书籍:美生中国人等
- 《荒野大镖客》PC版曝光!《GTA6》疑似也有PC版
- 林宥嘉.2008-神秘嘉宾(引进版)【华研国际】【WAV+CUE】
- 徐小凤.1997-金曲精选(康艺经典珍藏系列)【康艺成音】【WAV+CUE】
- 群星.1994-非常精丫宝丽金】【WAV+CUE】
- 《赛马娘 热血喧闹大感谢祭!》评测:现代复古派对
- 《星球大战:亡命之徒》评测:还是看看远方的光剑吧