GitHub Pagesツール

無料 GitHub Pages SPA 404ヘルパー

GitHub Pages上のシングルページアプリ向けに404.htmlフォールバックを生成します。

ツールを読み込み中...

GitHub Pages SPA 404ヘルパーとは

GitHub Pagesは静的ファイルを配信し、一致するファイルが存在しない限りクライアントサイドルートを認識しません。シングルページアプリケーションでは、訪問者がディープルートを直接開くと404が表示されることがあります。404フォールバックは、リクエストされたパスをルーター用に保持しながら、ブラウザをアプリのエントリポイントにリダイレクトできます。

クイックアンサー

GitHub Pagesにデプロイされたシングルページアプリケーション向けの404.htmlフォールバックを生成します。フォールバックはディープクライアントサイドルートをアプリのエントリポイントにリダイレクトし、元のパスをルーターが処理できるよう保持します。

Last updated: 2026-06-11

制限事項

  • これは汎用的なクライアントサイドフォールバックであり、サーバーサイドリダイレクト設定ではありません。ブラウザ内のJavaScriptに依存して元のパスを抽出し、ルーターに渡します。
  • クライアントサイドルーターは、クエリ文字列またはハッシュから保持されたパスを読み取り、一致するルートをレンダリングするよう設定する必要があります。すべてのルーターがこのリダイレクトパターンを自動的に処理するわけではありません。
  • このアプローチは、最初のリダイレクト後のSPA内のナビゲーションやリフレッシュ動作を修正しません。完全なクライアントサイドルーティングサポートには、ルーターレベルの設定が依然として必要です。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. アプリのベースパスを入力します。ユーザードメインまたはカスタムドメインサイトには/を、プロジェクトページには/repo-name/を使用します。
  2. フォールバックが元のパスをクエリ文字列とハッシュのどちらに保存するかを選択します。
  3. 生成された404.htmlファイルを公開サイトルートにコピーします。
  4. デプロイ後にディープルートを直接テストします。

主な用途

  • GitHub Pages上のクライアントサイドルートへの直接訪問を修正する。
  • React、Vue、Svelte、バニラルーター向けの404フォールバックを準備する。
  • プロジェクトページに必要なベースパスを文書化する。

用途

使用例

カスタムドメインSPA

www.example.comのサイトがクライアントサイドルーティングを使用する場合、ヘルパーはパスを保持したままディープルートを/にリダイレクトするフォールバックを生成します。

プロジェクトページSPA

/my-app/の下にデプロイされたプロジェクトは、ルートがドメインルートにリダイレクトされないようベースパスを含める必要があります。

よくあるミス

  • /repo-name/の下にデプロイされたプロジェクトページに/をベースパスとして使用すること。
  • 404.htmlを最終的なdistフォルダにコピーするのを忘れること。
  • このフォールバックがサーバーサイドリダイレクトを置き換えると期待すること。

検証

  1. 生成された404.htmlをルートに配置してサイトをデプロイし、ブラウザでhttps://yoursite.com/some/deep/routeのようなディープルートURLを直接開きます。
  2. ページがSPAエントリポイントを読み込み、ルーターが404や空白ページを表示せずにディープルートに移動することを確認します。

FAQ

GitHub Pages SPA 404ヘルパーのFAQ

これはすべてのルーターで機能しますか?

いいえ。これは汎用的なフォールバックです。ルーター側で保持されたパスを読み取り、一致するルートをレンダリングする必要があります。

404.htmlはどこに配置すべきですか?

index.html、CNAME、robots.txtなどの他の最終出力ファイルと共に、公開サイトルートに配置します。

通常の静的サイトはこれを使用すべきですか?

通常はいいえ。通常の静的サイトは、すべてをフォールバック経由でルーティングするのではなく、重要なページに実際のHTMLファイルを公開するべきです。

関連ツール

その他のgithub pagesツール

こちらもお試しください

こちらもお試しください