關(guān)于vue-cli構(gòu)建的項(xiàng)目在github上的預(yù)覽問題

vue-cli構(gòu)建的項(xiàng)目,npm run dev時(shí)看到的頁(yè)面對(duì)應(yīng)的是npm run build之后dist文件夾中的index.html文件,而不是項(xiàng)目根目錄下的index.html文件。

我第一次使用vue-cli構(gòu)建的項(xiàng)目,在npm run build之后,在本地打開dist文件夾中的index.html文件,頁(yè)面是空白的。而在本地npm run dev是完全沒有問題的。更令我郁悶的是push到github上面時(shí),dist文件都沒了。

兩個(gè)問題

一番摸索之后,終于找到了問題原因,我們逐一分析這兩個(gè)問題。

忽略文件

對(duì)比github上和本地文件之后,發(fā)現(xiàn)最重要的dist文件沒有被提交到github上,如下圖

dist文件是npm run build執(zhí)行后被編譯打包生成的文件,CSS、JS、圖片等文件都在dist文件中,所以該文件必須要提交到github上。

在項(xiàng)目根目錄下有一個(gè).gitignore文件,文件中設(shè)置一些文件名,對(duì)應(yīng)的文件將不會(huì)被提交到github上面。

.gitignore文件中,確實(shí)有dist文件名,如下圖

.gitignore文件中的dist文件名刪除,然后重新push到github上就有了dist文件

路徑問題

解決完上面dist文件的問題之后,打開該文件路徑下的github pages預(yù)覽地址,還是顯示空白頁(yè),如下圖

我們查看控制臺(tái),可以看到文件的路徑都出現(xiàn)了問題,如下圖

路徑

這里解釋一下路徑問題中/、./../的區(qū)別:

  • /
    /開頭的路徑就是絕對(duì)路徑,/是指根目錄,這里的根目錄在本地就是指磁盤,在github上面就是指?jìng)}庫(kù)的根目錄,在網(wǎng)站上就是指服務(wù)器的根目錄
  • ./
    ./開頭的路徑是相對(duì)路徑,相對(duì)的是自身文件所在的目錄,如下兩種情況是沒有區(qū)別的
./image/author.png
image/author.png
  • ../
    ../是相對(duì)與自身文件的上級(jí)目錄,屬于相對(duì)路徑

所以上圖中的路徑就出在路徑前面的/,/表示根目錄,我們總不能把static文件移動(dòng)到根目錄,這樣就太傻了。

所以我們要找到配置文件更改下路徑,找到config/index.js文件,如下圖

修改圖中assetsPublicPath的參數(shù),每次npm run build后的文件路徑將會(huì)按照參數(shù)生成,兩種設(shè)置方法:

assetsPublicPath: './'

assetsPublicPath: ''

這樣設(shè)置之后,再次npm run build,重新push到github上面,打開<your name>.github.io/<repositories>/dist/index.html就能看到預(yù)覽頁(yè)了

總結(jié)

每次的踩坑都是不可預(yù)知的,但解決之后是鍛煉人的,也是有些許成就感的。這里總結(jié)一下這次遇到的問題,希望可以幫到其他人。

本文首發(fā)在個(gè)人博客yoowin.me,歡迎訪問!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容