淺談webpack打包過程中因為圖片的路徑導(dǎo)致的問題
最近在制作一個自己的個人博客的時候遇到這么一個問題, 在CSS中使用了相對路徑來充當(dāng)背景圖片, 如下所示:
然后將整個工程使用webpack打包之后, 在瀏覽器上運行卻報錯了, 報錯如下:
也就是說, 打包之后這個圖片文件找不到了, 那么原因出在哪里呢? 先來看一下我在webpack.config.js文件中的配置:
在這里其實我的loader并沒有使用錯誤的, 圖片對應(yīng)的就是使用url-loader來處理. 那么再來看一下通過webpack打包之后的目錄:
發(fā)現(xiàn)dist文件夾中出現(xiàn)了我們想要打包生成的一個文件build.js, 同時還額外的生成了一個圖片文件, 這個文件就是剛剛我們在CSS中
指定的一個背景圖片. 通過瀏覽器的報錯信息可以發(fā)現(xiàn), build.js為我們指定的這個圖片的地址明顯不正確, 在默認(rèn)情況下, 打包過程會
將使用到的圖片拷貝一份放到output的path指定的目錄下, 然而在build.js中引用的圖片路徑確實整個工程文件的根目錄, 因此自然引
用不到. 那么應(yīng)該如何處理呢? 在webpack.config.js文件中output對象中指定publicPath屬性, 它用來指定靜態(tài)資源 (圖片等) 的發(fā)布地
址, 當(dāng)配置過該屬性后,打包文件 (也就是build.js) 中所有通過相對路徑引用的資源都會被配置的路徑所替換。因此通過如此設(shè)置
之后build.js中引用該圖片的路徑會在一開始的根目錄的路徑后面添加publicPath指定的路徑, 所以我們在webpack.config.js添加
下圖中的紅色框中的內(nèi)容即可:
那么最終運行起來就能夠通過dist文件夾找到生成的圖片了!
以上這篇淺談webpack打包過程中因為圖片的路徑導(dǎo)致的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用ES6的class類繼承來實現(xiàn)絢麗小球效果
JS是由ES(ECMAScript)、DOM(瀏覽器文檔對象)、BOM(瀏覽器對象模型)組成,這篇文章主要給大家介紹了關(guān)于如何使用ES6的class類繼承來實現(xiàn)絢麗小球效果的相關(guān)資料,需要的朋友可以參考下2021-06-06JS簡單實現(xiàn)查看文檔創(chuàng)建日期、修改日期和文檔大小的方法示例
這篇文章主要介紹了JS簡單實現(xiàn)查看文檔創(chuàng)建日期、修改日期和文檔大小的方法,結(jié)合實例形式分析了JavaScript使用fileCreatedDate屬性、fileModifiedDate屬性、lastModified屬性和fileSize屬性相關(guān)操作技巧,需要的朋友可以參考下2018-04-04JavaScript使用forEach()與jQuery使用each遍歷數(shù)組時return false 的區(qū)別
這篇文章主要介紹了JavaScript使用forEach()與jQuery使用each遍歷數(shù)組時return false 的區(qū)別,非常不錯,需要的朋友可以參考下2016-08-08