以下我使用 next.js15 寫的 Todo List 為例,假設我們本地已經存在一個 next.js15 的 Todo List 項目。
說明:解決了項目部署到 github pages 后訪問不到 css、js、字體以及訪問不到 public
目錄下的圖片問題。
第一步
安裝 gh-pages:
npm i gh-pages
第二步
在 public
目錄下新建一個 .nojekyll
的空文件。 這個空文件的作用是讓 github 不要忽略以下劃線開頭的文件或文件夾,因為項目打包后會生成一個 _next
文件夾,如果沒有 .nojekyll
文件,github 會忽略掉打包生成的 _next
文件夾,會導致部署后訪問不到 CSS、字體等資源。
第三步
在next.config.ts
文件中添加以下配置。 因為我們要生成的是靜態項目,所以要啟用靜態導出,這樣在執行打包命令后,才能夠得到一個 out
目錄來進行部署到 github pages;因為我們的項目都是部署在自己 github 的一個子域下,所以 basePath 要設置為 github 項目名,由于我的 package.json
中 name 屬性值與 github 上定義的項目名一致,所以這里我是直接從 package.json
中獲取的。這里還通過 env
導出了一個環境變量,只是給頁面中的 <Image />
組件用的,因為官方提供的 <Image />
組件在開發環境下可以直接通過相對路徑訪問到 public/
目錄下的圖片,但是部署上去之后路徑就不對了,所以這里提供一個環境變量,讓 <Image />
標簽可以進行拼接使用。
import type { NextConfig }