完美解决webpack打包css背景图片路径问题
建站知识 2021-07-03 07:55www.168986.cn长沙网站建设
在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背景图片路径内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章,希望大家以后多多支持狼蚁SEO!
长沙网站设计
- 如何进行东阳SEO关键词优化?
- 边坝哪有关键词排名优化:提升你的网站流量与
- 安国百度优化服务:提升您的在线可见性
- 阜康新手做SEO怎么做
- 山西seo网站排名关键词优化:提升您网站曝光率
- 临沂seo网站排名关键词优化:提高你的网站可见
- 广西SEO网站推广怎样付费比较合理
- 双辽SEO网站推广:提升你的网站可见性与流量
- 辽宁企业网站优化购买方式有哪些
- 提升宝清百度SEO排名的实用技巧与策略
- 静宁百度SEO排名:提升您网站曝光率的关键策略
- 彭州百度SEO排名的提升策略和实施指南
- 广南百度关键词SEO:提升网站排名的关键策略
- 辽宁关键词优化怎么做论坛营销
- 吉林百度seo排名如何做到让用户满意
- 内黄百度优化服务:提升在线可见性的关键