解決Vue項(xiàng)目打包后打開index.html頁(yè)面顯示空白以及圖片路徑錯(cuò)誤的問題
Vue項(xiàng)目運(yùn)行npm run build后會(huì)生成一個(gè)dist文件夾,我們一般都是把這個(gè)文件夾部署到服務(wù)器上。dist文件夾里邊有一個(gè)static文件和一個(gè)index.html頁(yè)面,這個(gè)index就是最后單頁(yè)面的最終文件。
問題一:我在打包完成后,打開index.html文件發(fā)現(xiàn)地址并沒有攜帶路由。

這樣的話頁(yè)面就是空白了,因?yàn)闆]有組件被添加到頁(yè)面中。打開F12會(huì)看到一堆的紅色failed請(qǐng)求。打開請(qǐng)求地址是這樣的。

進(jìn)入D盤就開始尋找static文件夾當(dāng)然是找不到的。既然知道了是打包之后尋找文件的地址錯(cuò)誤,就去config文件夾下的index.js中尋找問題。index.js中的build命令的配置有一個(gè)屬性叫assetsPublicPath,它的值為‘/'。意思是根目錄,這時(shí)會(huì)從index.html所在的硬盤的根目錄下開始查找,自然無法找到。解決辦法:

改為‘./'這時(shí)就不再是絕對(duì)路徑的根目錄了,而是改為了相對(duì)路徑,同目錄下進(jìn)行查找。再次打包,頁(yè)面基本正常。
問題二:我再次打包后,頁(yè)面可以正常打開。但是頁(yè)面上的一些圖片請(qǐng)求失敗。
我這里請(qǐng)求失敗的都是背景圖片,而且只是某一些失敗。我一直有一個(gè)疑惑就是為什么同一個(gè)css文件中的背景圖片請(qǐng)求有的成功有的失敗,要知道我的圖片都是放在同一個(gè)文件夾下邊的。目前這個(gè)疑惑還沒有解決。
打開某一個(gè)失敗的請(qǐng)求,我們會(huì)發(fā)現(xiàn)請(qǐng)求的路徑是這樣的。

也就是說這個(gè)css文件是從當(dāng)前文件夾下往里尋找static/img/XXX.png,要知道static文件夾是在dist根目錄下邊的,因此,我們需要修改build的全局配置,改變css文件的文件請(qǐng)求路徑。css文件在static里邊的css文件夾中,因此需要先‘../../'出到dist根目錄下,然后再static/img/XXX.png,就可以正確找到對(duì)應(yīng)的圖片文件。
解決辦法:
修改build文件夾下邊的utils.js文件。

再文件相同的if語句下添加下圖中選中的代碼。

重新打包,即可解決圖片找不到的問題。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue.js遞歸組件實(shí)現(xiàn)組織架構(gòu)樹和選人功能
這篇文章主要介紹了Vue.js遞歸組件實(shí)現(xiàn)組織架構(gòu)樹和選人功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Element-UI組件實(shí)現(xiàn)面包屑導(dǎo)航欄的示例代碼
面包屑導(dǎo)航欄是一種用戶界面組件,用于展示用戶在網(wǎng)站或應(yīng)用中的路徑,它包括了從主頁(yè)到當(dāng)前頁(yè)面的鏈接序列,有助于用戶快速了解和導(dǎo)航至上級(jí)頁(yè)面,本文就來介紹一下Element-UI組件實(shí)現(xiàn)面包屑導(dǎo)航欄的示例代碼,感興趣的可以了解一下2024-09-09
Vue3實(shí)現(xiàn)九宮格抽獎(jiǎng)的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Vue3實(shí)現(xiàn)九宮格抽獎(jiǎng)的功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下2022-09-09
Vue build過程取消console debugger控制臺(tái)信息輸出方法詳解
這篇文章主要為大家介紹了Vue build過程取消console debugger控制臺(tái)信息輸出方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09

