欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

  發(fā)布時間:2020-07-01 15:23:12   作者:佚名   我要評論
這篇文章主要介紹了完美解決webpack打包c(diǎn)ss背景圖片路徑問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

在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)文章

最新評論