📄

Next jsをGitHub Pageにデプロイしたときにnext/linkが正しく遷移するようにする

2021/09/06に公開

状況

Nextjs のプロジェクトで GitHub Pages にデプロイし下のようなコードを書いた時に https://aaaaaaaaaaaaaa.github.io/bbbbbbbbbbbb/page1 に遷移してほしいのに https://aaaaaaaaaaaaaa.github.io/page1 に遷移してしまう。

<Link href="/page1">
  <a>リンク</a>
</Link>

解決策

GitHub 側

GitHub の Settings > Environments から github-pages を選んで環境変数名には BASE_PATHvalue には /<Github Pagesのリポジトリ名> を入力する

Next.js 側

next.config.js でこのように trailingSlash を true にすることで html ファイルが pagepath/index.html のように生成されるようにした生成されるようにし、basePath と assetPrefix を GitHub Pages のベース URL 設定します。これを入力してから、もう一度ビルドすると正しくページが遷移するようになります。

next.config.js
module.exports = {
  trailingSlash: true
  assetPrefix: process.env.BASE_PATH || '',
  basePath: process.env.BASE_PATH || '',
}
GitHubで編集を提案

Discussion