您现在的位置是:网站首页> 编程资料编程资料
完美解决webpack打包css背景图片路径问题使用CSS cross-fade()实现背景图像半透明效果的示例代码CSS3为背景图设置遮罩并解决遮罩样式继承问题CSS设置div背景图的实现代码CSS背景图片设置的6个有趣的技巧CSS3 实现响应鼠标移动背景图片漂移效果的用户介绍卡片源码使用css写带纹理渐变背景图的示例代码
2021-09-03
720人已围观
简介 这篇文章主要介绍了完美解决webpack打包css背景图片路径问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
在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中???
到此这篇关于完美解决webpack打包css背景图片路径问题的文章就介绍到这了,更多相关webpack打包css背景图片路径内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- 纯CSS实现选中商品后右下角显示√号功能CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- css 实现动态二级菜单使用HTML+CSS实现鼠标划过的二级菜单栏的示例纯CSS实现鼠标滑过显示子菜单的二级菜单效果HTML+CSS+JavaScript通过嵌套ul li实现简单的二级菜单js+css实现圆角二级菜单jQuery CSS 完美兼容的二级菜单
- Flex移动布局中单行和双行布局的区别及使用详解
- CSS实现导航固定的、左右滑动的滚动条制作方法css实现隐藏滚动条并可以滚动内容的实例代码CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解CSS实现隐藏滚动条并可以滚动内容效果(三种方式)css滚动条样式修改的代码css3 实现滚动条美化效果的实例代码
- CSS规范BEM CSS和OOCSS的示例代码详解CSS使用BEM命名规范实践CSS样式书写顺序和命名规范及注意事项值得收藏的CSS命名规范(规则)常用的CSS命名规则 好的 CSS 命名规范可以节约 Debug 时间css 命名:BEM, scoped css, css modules 与 css-in-js详解详解css BEM书写规范 从QQtabBar看css命名规范BEM的详细介绍
- 一文汇总 CSS 两列布局和三列布局的具体使用CSS实现页面两列布局与三列布局的方法示例CSS两列布局实现方式总结横向两列布局(左列固定,右列自适应)的4种CSS实现方式学习DIV+CSS网页布局之两列布局CSS三列布局两端固定宽度中间自适应CSS布局实例代码 两列布局实例CSS实现两列布局的N种方法
- CSS 伪类修改input选中样式的示例代码详解css3中的伪类before和after常见用法CSS伪类:empty让我眼前一亮(实例代码)浅谈CSS 伪元素&伪类的妙用css伪类 右下角点击出现 对号角标表示选中的示例代码css选择器四大类:基本、组合、属性、伪类详解如何使用CSS3中的结构伪类选择器和伪元素选择器解决移动端跳转问题(CSS过渡、target伪类)css3 伪类选择器快速复习小结CSS新增的:where和:is伪类函数是什么
- flex布局实现无缝滚动的示例代码flex布局实现每行固定数量+自适应布局浅谈Flex布局与缩放比例计算详解flex布局中保持内容不超出容器的解决办法深入浅析CSS3中的Flex布局整理css3 flex实现div内容水平垂直居中的几种方法详解CSS中的flex布局css用Flex布局制作简易柱状图的实现flex布局兼容性问题小结css3 flex布局 justify-content:space-between 最后一行左对齐详解flex布局中flex-grow与flex-shrink的计算方式
- 解决flex布局space-between最后一行左对齐的方法flex弹性盒布局最后一行左对齐的实现思路css3 flex布局 justify-content:space-between 最后一行左对齐让CSS flex布局最后一行列表左对齐的N种方法(小结)
- 使用css写带纹理渐变背景图的示例代码使用CSS cross-fade()实现背景图像半透明效果的示例代码完美解决webpack打包css背景图片路径问题CSS3为背景图设置遮罩并解决遮罩样式继承问题CSS设置div背景图的实现代码CSS背景图片设置的6个有趣的技巧CSS3 实现响应鼠标移动背景图片漂移效果的用户介绍卡片源码
