完美解決webpack打包c(diǎn)ss背景圖片路徑問題

在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)沒有css文件。這是因?yàn)閏ss文件被轉(zhuǎn)化成了js文件。
此時啟動項(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)如下
可以看到此時圖片在根目錄(dist)目錄下,但是css文件處在dist/css/目錄下?,F(xiàn)在來看一下打包后的css文件是如何引用圖片的路徑。
2.3 打包結(jié)果
background-image: url(bb65a86a2fe7669e483a56b970bea421.png);
可以看到在dist/css目錄下沒有bb65a86a2fe7669e483a56b970bea421.png圖片。因此圖片無法正常顯示。理想的情況是
background-image: url(../bb65a86a2fe7669e483a56b970bea421.png);
3 解決方案
更改loader的配置如下
{ loader: MiniCssExtractPlugin.loader, options: { // 當(dāng)前的css所在的文件相對于打包后的根路徑dist的相對路徑 publicPath: '../' } }, 'css-loader', 'less-loader'
總結(jié)
分離css文件導(dǎo)致css背景圖片路徑錯誤,解決方案的核心是配置publicPath的值,publicPath的值是css文件所在的文件目錄相對于根目錄的相對路徑值。 比如,根路徑是/,css文件所在的目錄是/css/,因此相對路徑是..
意外問題
為什么webpack打包后,css文件被混入到bundle.js文件中,但是圖片沒有被混入到bundle.js中???
到此這篇關(guān)于完美解決webpack打包c(diǎn)ss背景圖片路徑問題的文章就介紹到這了,更多相關(guān)webpack打包c(diǎn)ss背景圖片路徑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
使用CSS cross-fade()實(shí)現(xiàn)背景圖像半透明效果的示例代碼
這篇文章主要介紹了使用CSS cross-fade()實(shí)現(xiàn)背景圖像半透明效果的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07- 這篇文章主要介紹了CSS3為背景圖設(shè)置遮罩并解決遮罩樣式繼承問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小2020-06-22
CSS設(shè)置div背景圖的實(shí)現(xiàn)代碼
這篇文章主要介紹了CSS設(shè)置div背景圖的實(shí)現(xiàn)代碼,代碼簡單易懂,非常不錯,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-14- 這篇文章主要介紹了CSS背景圖片設(shè)置的6個有趣的技巧,本文通過截圖實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-12
CSS3 實(shí)現(xiàn)響應(yīng)鼠標(biāo)移動背景圖片漂移效果的用戶介紹卡片源碼
這是一款基于CSS3 實(shí)現(xiàn)響應(yīng)鼠標(biāo)移動背景圖片漂移效果的用戶介紹卡片源碼。畫面背景默認(rèn)顯示一副男孩的信息介紹卡片,卡片帶有圖文介紹、圖標(biāo)鏈接,以及背景懸浮陰影效果。2020-05-06- 這篇文章主要介紹了使用css寫帶紋理漸變背景圖,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-20