新聞中心
這篇文章給大家分享的是有關(guān)怎么解決webpack打包c(diǎn)ss背景圖片路徑問(wèn)題的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)是專(zhuān)業(yè)的蘆溪網(wǎng)站建設(shè)公司,蘆溪接單;提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行蘆溪網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
在vue組件的style標(biāo)簽內(nèi)部有如下一段使用背景圖片的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目錄的發(fā)現(xiàn)沒(méi)有css文件。這是因?yàn)閏ss文件被轉(zhuǎn)化成了js文件。
此時(shí)啟動(dòng)項(xiàng)目,背景圖片引入正確,能夠正常顯示。
2 將css文件提取到單獨(dú)的文件目錄
使用 mini-css-extract-plugin 將css文件單獨(dú)提取到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目錄結(jié)構(gòu)如下
可以看到此時(shí)圖片在根目錄(dist)目錄下,但是css文件處在dist/css/目錄下。現(xiàn)在來(lái)看一下打包后的css文件是如何引用圖片的路徑。
2.3 打包結(jié)果
background-image: url(bb65a86a2fe7669e483a56b970bea421.png);
可以看到在dist/css目錄下沒(méi)有bb65a86a2fe7669e483a56b970bea421.png圖片。因此圖片無(wú)法正常顯示。理想的情況是
background-image: url(../bb65a86a2fe7669e483a56b970bea421.png);
3 解決方案
更改loader的配置如下
{ loader: MiniCssExtractPlugin.loader, options: { // 當(dāng)前的css所在的文件相對(duì)于打包后的根路徑dist的相對(duì)路徑 publicPath: '../' } }, 'css-loader', 'less-loader'
感謝各位的閱讀!關(guān)于“怎么解決webpack打包c(diǎn)ss背景圖片路徑問(wèn)題”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
分享標(biāo)題:怎么解決webpack打包c(diǎn)ss背景圖片路徑問(wèn)題
文章路徑:http://www.ef60e0e.cn/article/pijdpg.html