网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

怎么解决webpack打包css背景图片路径问题

这篇文章给大家分享的是有关怎么解决webpack打包css背景图片路径问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联是专业的芦溪网站建设公司,芦溪接单;提供成都网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行芦溪网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

在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文件。

怎么解决webpack打包css背景图片路径问题 

此时启动项目,背景图片引入正确,能够正常显示。

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目录结构如下

怎么解决webpack打包css背景图片路径问题

可以看到此时图片在根目录(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'

感谢各位的阅读!关于“怎么解决webpack打包css背景图片路径问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


文章题目:怎么解决webpack打包css背景图片路径问题
标题URL:http://bjjierui.cn/article/pijdpg.html

其他资讯