在項(xiàng)目打包時(shí)發(fā)現(xiàn)玩敏,雖然默認(rèn)static文件夾里面的內(nèi)容不會(huì)被打包沿侈,但是static中的圖片文件闯第,如果是通過相對(duì)路徑引入到css樣式中,那么在最終打包時(shí)缀拭,在css文件中發(fā)現(xiàn)咳短,其仍然會(huì)被轉(zhuǎn)換成base64的圖片文件數(shù)據(jù),在這種情況下蛛淋,即使替換打包文件中的static文件的圖片咙好,也不會(huì)真的替換程序中的圖片。而如果采用絕對(duì)路徑的形式引入到css樣式中褐荷,則不會(huì)被處理成base64勾效。
因此,webpack默認(rèn)將static目錄的文件原原本本輸出,所以當(dāng)頁(yè)面要使用絕對(duì)路徑時(shí)层宫,圖片就需要放在static目錄杨伙。如果用了相對(duì)路徑,圖片仍然放在static萌腿,static目錄的圖片被打包出來也沒有多大意義限匣,刪了也不會(huì)影響圖片展示。
所以一般assets目錄存相對(duì)路徑用的圖片毁菱,static存絕對(duì)路徑用的圖片米死。相對(duì)目錄的圖片在出包后由于被打包進(jìn)js,不方便更換圖片贮庞,而絕對(duì)路徑的圖片沒有被打包進(jìn)js而是在static文件夾下峦筒,所以可以隨時(shí)更換。就是網(wǎng)上所說的贸伐,static放有可能經(jīng)常被更換的圖片(商品圖片之類)勘天,assets放組件使用的圖片(如一些menu的背景圖片等)。
**即需要打包成base64的放入assets目錄下捉邢,不需要的放入static脯丝。同時(shí)注意,圖片處理成base64后不需要進(jìn)行圖片請(qǐng)求伏伐,可以有效減少瀏覽器請(qǐng)求宠进,但處理成base64文件不宜過大.
參考原文https://blog.csdn.net/weixin_40012136/article/details/77992125