1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ViteとGithub Pagesを使ってデプロイしたら画面真っ白!(React Routerが原因)

Posted at

はじめに

GitHub Pagesを使って作成したWebサイトをデプロイしてみたところ、画面が真っ白になりました!

デベロッパーツールを見ても、エラーは特に出ていないのに、画面が真っ白 という方がいれば、この記事が役立つかもしれません。

結論

私の場合はReact Routerが原因でした。

具体的にはGithub Pagesでデプロイすると、そのURLは

https://ユーザ名.github.io/リポジトリ名/

というようになり、URLのベースをリポジトリ名に合わせる必要があります。

この対策を行わなければ、React Routerが

https://ユーザ名.github.io/

にアクセスしてしまっている?と思います。

それが原因で、ページが表示されず、真っ白になります。

解決策

それでは解決策に入りましょう。

環境変数やvite.configをいじったり、何個か解決策は存在しますが

私が最も簡単だと感じた方法を紹介します。
以下がその方法です!

ReactDOM.createRoot(document.getElementById("root")!).render(
  <BrowserRouter basename={import.meta.env.DEV ? "/" : "/レポジトリ名/"}>
    <App />
  </BrowserRouter>
);

主な変更点は、BrowserRouter に以下の部分を追加した点です。

basename={import.meta.env.DEV ? "/" : "/レポジトリ名/"}

こちらを軽く解説すると、

まず、import.meta.env.DEV によって開発環境か否かを認識します。

そして、その結果が True であれば "/"

False であれば "/レポジトリ名/"

basename に代入しています。


これによって、
デプロイ後の本番環境には、レポジトリ名をベースとしてReact Routerが画面遷移を行い、ページを正常に表示することが可能となります。

終わりに

エラーも出ずに、画面が真っ白になって驚いた方のお役に立てれば光栄です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?