最近在制作一個(gè)自己的個(gè)人博客的時(shí)候遇到這么一個(gè)問題, 在CSS中使用了相對路徑來充當(dāng)背景圖片, 如下所示:
成都創(chuàng)新互聯(lián)于2013年開始,先為寶豐等服務(wù)建站,寶豐等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為寶豐企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
然后將整個(gè)工程使用webpack打包之后, 在瀏覽器上運(yùn)行卻報(bào)錯(cuò)了, 報(bào)錯(cuò)如下:
也就是說, 打包之后這個(gè)圖片文件找不到了, 那么原因出在哪里呢? 先來看一下我在webpack.config.js文件中的配置:
在這里其實(shí)我的loader并沒有使用錯(cuò)誤的, 圖片對應(yīng)的就是使用url-loader來處理. 那么再來看一下通過webpack打包之后的目錄:
發(fā)現(xiàn)dist文件夾中出現(xiàn)了我們想要打包生成的一個(gè)文件build.js, 同時(shí)還額外的生成了一個(gè)圖片文件, 這個(gè)文件就是剛剛我們在CSS中
指定的一個(gè)背景圖片. 通過瀏覽器的報(bào)錯(cuò)信息可以發(fā)現(xiàn), build.js為我們指定的這個(gè)圖片的地址明顯不正確, 在默認(rèn)情況下, 打包過程會
將使用到的圖片拷貝一份放到output的path指定的目錄下, 然而在build.js中引用的圖片路徑確實(shí)整個(gè)工程文件的根目錄, 因此自然引
用不到. 那么應(yīng)該如何處理呢? 在webpack.config.js文件中output對象中指定publicPath屬性, 它用來指定靜態(tài)資源 (圖片等) 的發(fā)布地
址, 當(dāng)配置過該屬性后,打包文件 (也就是build.js) 中所有通過相對路徑引用的資源都會被配置的路徑所替換。因此通過如此設(shè)置
之后build.js中引用該圖片的路徑會在一開始的根目錄的路徑后面添加publicPath指定的路徑, 所以我們在webpack.config.js添加
下圖中的紅色框中的內(nèi)容即可:
那么最終運(yùn)行起來就能夠通過dist文件夾找到生成的圖片了!
以上這篇淺談webpack打包過程中因?yàn)閳D片的路徑導(dǎo)致的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持創(chuàng)新互聯(lián)。