問題
項目在開發環境下工作正常,當打包后圖片不見了,檢查元素后發現路徑出錯了。圖片路徑是這樣:background: url(/static/img/bg_camera_tip.bd37151.png)
,但該路徑下文件並不存在。
打包后文件目錄如下:
可以看到背景圖片的路徑應該是../../static
而實際卻是/static
,找到原因后就好解決了
查看build
目錄下webpack.base.conf.js
的配置,圖片文件會經過url-loader
處理。
它的作用是當文件大小小於limit限制時會返回一個base64串,其實就是把圖片資源編碼為base64串放在CSS文件里,這樣就可以減少一次網絡請求,因為每一張圖片都是需要從服務端去下載的。但是如果文件太大了就會導致base64串很長,那放在CSS文件里面就會導致文件很大,CSS的文件下載時間變長,就得不償失了,所以會有一個limit參數,在這個范圍內的才會被轉成base64串,它的單位是字節。對於這個問題,該loader還提供了一個publicPath參數,目的是修改引用的圖片地址,默認是當前路徑,那直接改它就可以了,即在options節點下添加一個參數publicPath: '../../'。
問題解決鏈接 https://blog.csdn.net/puyahua/article/details/80076033