gitee pages 部署 Vue 單頁應用注意事項

  1. 在項目根目錄下添加 .spa 文件,內容為空,主要是為了用于自動切換 Nginx 的 404 配置,詳情。

  2. 修改 vue.config.js 配置中的 publicPath 配置

const BASE_URL = process.env.NODE_ENV === "production" ? "/yourProjName/" : "/";
module.exports = {
  publicPath: BASE_URL,
}

解釋:當變量 process.env.NODE_ENV 為生產環境時,將 BASE_URL 設置為項目名稱,這是因為使用 gitee pages 部署的應用,默認根路徑為 http://xxx.gitee.io/,如果不修改 publicPath ,則你的應用中的資源請求都將會從根路徑去找,結果就是出現 404,找不到你的資源,因為你的資源都存放在 http://xxx.gitee.io/ 下面的項目目錄中,比如你在 gitee 上的項目名稱為 myblog,那么上面代碼中的 "/yourProjName/" 就應為 "/myblog/",如下:

const BASE_URL = process.env.NODE_ENV === "production" ? "/myblog/" : "/";
  1. 將項目中使用了 / 開頭的絕對路徑寫法去引用 public 靜態資源的 URI 改掉。如果是寫在 Html 部分 <template>...</template> 里面的,則可以直接將打頭的 / 去掉,如 <img src="/img/test.jpg" /> 改為 <img src="img/test.jpg" />。如果寫在 Css 部分 <style></style> 里面的,如 background: url("/img/test.jpg"),那你還是把 public 里面對應的資源挪到 asstes 下面吧……因為我也沒找到其他解決辦法 ε=(′ο`*)))唉

  2. 關閉 vue-router 的 history 模式,如果你使用了 vue-router 并且啟用了 history 模式,打開對應的配置文件,關閉它!因為如果你使用了 history 模式,燃鵝,你只是一個前端靜態應用,部署在 gitee pages 服務上之后,沒有后端的支持,當你打開某個經過路由的組件之后,再刷新頁面,或者將當前 URI 用新瀏覽器窗口打開,┗|`O′|┛ 嗷~~ 404 找不到這個頁面了?。。]有后端的支持,gitee pages 會將你的 URI 當做真實的資源地址去請求資源,但實際這個地址只是前端路由之后的偽資源地址,sooooooooo

  3. 修改 .gitignore 文件,注釋掉 /dist,因為我們最終部署上去的應用,就在這里面,所以我們必須將它上傳到 gitee

.DS_Store
node_modules
# /dist

...
  1. biuld 你的項目,執行 npm run biuld 命令,編譯你的項目,編譯完成之后,提交你的項目

  2. 登錄你的 gitee ,打開你的項目版本庫頁面,在頁面頂部有一排選項 [ </>代碼 | Issues | ... | DevOps | 服務 | 管理 ],點開服務,第一個選項就是Gitee Pages,點它!之后打開的頁面中 部署分支:根據自己的版本庫情況進行選擇,部署目錄:填寫上面說到的 dist,原因我就不說了。

  3. 如果你一切順利,那么你應該已經部署成功了,在部署頁面上會顯示一行字:已開啟 Gitee Pages 服務,網站地址: http://xxx.gitee.io/xxx。那就恭喜啦!

【注意】第 3 步是根據我的項目情況進行修改的,可能不適用于所有項目情況

純手工制作,碼字不易,如果有幫到你,點個贊再走唄

??

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容