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