0
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?

Windows環境からGitHubとCloudflare Pagesで静的サイトを公開する手順

0
Posted at

個人開発で作成した静的サイトを、Windows環境からGitHubへアップロードし、Cloudflare Pagesで公開したときの手順をまとめます。

今回は、ビルド済みのHTML・CSS・JavaScriptファイルが入った dist フォルダを、公開用リポジトリとして使用します。

この記事では、次の流れを説明します。

  1. GitHubでリポジトリを作成する
  2. WindowsのPowerShellからファイルをプッシュする
  3. Cloudflare PagesとGitHubを連携する
  4. サイト更新時の操作を確認する
  5. よくあるエラーを解決する

環境

今回使用した環境は次のとおりです。

  • Windows 11
  • PowerShell
  • Git
  • GitHub
  • Cloudflare Pages
  • 静的HTML・CSS・JavaScript
  • 公開対象フォルダ:dist

事前準備

作業を始める前に、WindowsへGitをインストールしておきます。

PowerShellを開き、次のコマンドでGitが利用できるか確認します。

git --version

バージョン情報が表示されれば準備完了です。

例:

git version 2.x.x.windows.x

コマンドが認識されない場合は、GitをインストールしてからPowerShellを開き直します。

1. GitHubでリポジトリを作成する

GitHubへログインし、新しいリポジトリを作成します。

公開用ファイルだけを保存する場合は、分かりやすいリポジトリ名を設定します。

設定例:

Repository name: sample-static-site
Visibility: Private または Public

Cloudflare PagesからGitHubリポジトリを読み込めるように設定していれば、非公開リポジトリでも利用できます。

今回は、ローカル側にすでにファイルが存在するため、GitHub側では次の項目を追加せず、空のリポジトリとして作成します。

  • README
  • .gitignore
  • LICENSE

GitHub側でREADMEを作成すると、ローカルの履歴とGitHub側の履歴が分かれ、最初のプッシュ時に追加操作が必要になることがあります。

2. 公開するフォルダへ移動する

PowerShellを開き、公開対象の dist フォルダへ移動します。

cd D:\project\sample-site\dist

現在のフォルダを確認します。

Get-Location

ファイル一覧も確認します。

Get-ChildItem

少なくとも、トップページになる index.html が存在することを確認します。

例:

dist
├─ index.html
├─ assets
│  ├─ style.css
│  └─ main.js
└─ images

3. distフォルダをGitリポジトリにする

対象フォルダでGitを初期化します。

git init

デフォルトブランチ名を main に変更します。

git branch -M main

正常に初期化されたか確認します。

git status

次のように表示されれば、Gitリポジトリとして認識されています。

On branch main

No commits yet

4. Gitのユーザー情報を設定する

初めてGitを使用する場合は、コミットに使用する名前とメールアドレスを設定します。

すべてのリポジトリで共通の情報を使用する場合:

git config --global user.name "Your Name"
git config --global user.email "your-email@example.com"

現在のリポジトリだけに設定する場合:

git config user.name "Your Name"
git config user.email "your-email@example.com"

設定内容を確認します。

git config user.name
git config user.email

5. GitHubリポジトリを登録する

GitHubで作成したリポジトリのURLを、origin という名前で登録します。

git remote add origin https://github.com/ユーザー名/リポジトリ名.git

例:

git remote add origin https://github.com/example-user/sample-static-site.git

登録されたURLを確認します。

git remote -v

次のように表示されれば設定できています。

origin  https://github.com/example-user/sample-static-site.git (fetch)
origin  https://github.com/example-user/sample-static-site.git (push)

6. ファイルをコミットする

公開するファイルをGitの管理対象へ追加します。

git add -A

追加されたファイルを確認します。

git status

問題がなければ、最初のコミットを作成します。

git commit -m "Initial deploy"

コミット履歴を確認します。

git log --oneline

7. GitHubへプッシュする

ローカルのファイルをGitHubへプッシュします。

git push -u origin main

-u を付けることで、ローカルの main ブランチと、GitHub側の main ブランチが関連付けられます。

次回からは、次の短いコマンドだけでプッシュできます。

git push

プッシュ後、GitHubのリポジトリを開き、index.html やCSS、JavaScriptなどが表示されていることを確認します。

8. Cloudflare Pagesでプロジェクトを作成する

Cloudflareへログインし、Pagesのプロジェクト作成画面を開きます。

GitHubとの連携を選択し、先ほど作成したリポジトリを指定します。

基本的な設定例は次のとおりです。

Production branch: main
Framework preset: None
Build command: 空欄
Build output directory: /

今回は、ビルド済みのファイルがリポジトリ直下に置かれているため、ビルドコマンドは必要ありません。

ソース一式をGitHubへ保存する場合

リポジトリの構成が次のようになっている場合は、設定が異なります。

project
├─ src
├─ package.json
└─ dist
   └─ index.html

この場合は、プロジェクトに合わせてビルドコマンドと出力先を指定します。

例:

Build command: npm run build
Build output directory: dist

設定は使用しているフレームワークやビルドツールによって変わります。

9. デプロイ結果を確認する

設定を保存すると、Cloudflare PagesがGitHubリポジトリの内容を読み込み、デプロイを開始します。

デプロイが完了すると、Cloudflare PagesのURLが発行されます。

例:

https://sample-static-site.pages.dev

このURLをブラウザで開き、次の点を確認します。

  • トップページが表示される
  • CSSが反映されている
  • JavaScriptが動作する
  • 画像が表示される
  • ページ間のリンクが正常に動作する
  • スマートフォンでもレイアウトが崩れない

10. 独自ドメインを設定する

独自ドメインを使用する場合は、Cloudflare Pagesのプロジェクト設定からカスタムドメインを追加します。

設定画面で使用したいドメインを入力します。

例:

example.com

または:

www.example.com

DNSもCloudflareで管理している場合は、必要なDNSレコードが自動的に設定されることがあります。

設定後、HTTPS証明書が有効になるまで少し時間がかかる場合があります。

独自ドメインで次の状態になっていることを確認します。

  • HTTPSでアクセスできる
  • HTTPからHTTPSへ転送される
  • www の有無が統一されている
  • Cloudflare Pagesの初期URLと内容が一致している

11. サイトを更新する方法

サイトのHTML、CSS、JavaScriptなどを修正したあと、公開用フォルダへ移動します。

cd D:\project\sample-site\dist

変更内容を確認します。

git status

すべての変更を追加します。

git add -A

コミットします。

git commit -m "Update site"

GitHubへプッシュします。

git push

GitHubへのプッシュをCloudflare Pagesが検知すると、自動的に再デプロイされます。

通常の更新作業は、次の3行だけです。

git add -A
git commit -m "Update site"
git push

12. よくあるエラーと解決方法

not a git repository と表示される

次のエラーが表示されることがあります。

fatal: not a git repository (or any of the parent directories): .git

これは、現在のフォルダがGitリポジトリとして初期化されていない場合に発生します。

まず、正しいフォルダへ移動します。

cd D:\project\sample-site\dist

その後、Gitを初期化します。

git init
git branch -M main

現在の状態を確認します。

git status

remote origin already exists と表示される

次のエラーが表示される場合があります。

error: remote origin already exists.

すでに origin が登録されていることが原因です。

現在のURLを確認します。

git remote -v

登録先を変更する場合は、次のコマンドを実行します。

git remote set-url origin https://github.com/ユーザー名/リポジトリ名.git

再度確認します。

git remote -v

GitHub側にREADMEがあり、プッシュできない

GitHubでリポジトリを作成したときにREADMEを追加していると、ローカルとGitHubで別々の履歴が作成されます。

次のようなエラーが表示されることがあります。

Updates were rejected because the remote contains work that you do not have locally.

GitHub側の変更を取り込みます。

git pull origin main --allow-unrelated-histories

競合がなければ、再度プッシュします。

git push -u origin main

コミット時にユーザー情報を求められる

次のようなエラーが表示される場合があります。

Author identity unknown

名前とメールアドレスを設定します。

git config user.name "Your Name"
git config user.email "your-email@example.com"

その後、もう一度コミットします。

git commit -m "Initial deploy"

src refspec main does not match any と表示される

次のエラーが表示される場合があります。

error: src refspec main does not match any

まだ一度もコミットしていない状態で、プッシュしようとした可能性があります。

先にファイルを追加してコミットします。

git add -A
git commit -m "Initial deploy"
git push -u origin main

CSSや画像が表示されない

Cloudflare Pagesでページは表示されるものの、CSSや画像が読み込まれない場合は、ファイルパスを確認します。

ローカル環境だけで動作する絶対パスは使用できません。

問題が起きやすい例:

<link rel="stylesheet" href="D:\project\sample-site\dist\style.css">

相対パスを使用します。

<link rel="stylesheet" href="./assets/style.css">

画像も同様です。

<img src="./images/sample.png" alt="サンプル画像">

ファイル名の大文字と小文字にも注意が必要です。

Windowsでは問題がなくても、公開環境では次の2つが別のファイルとして扱われる場合があります。

Home.png
home.png

変更が公開サイトへ反映されない

まず、変更がコミットされているか確認します。

git status

プッシュ履歴も確認します。

git log --oneline -5

Cloudflare Pagesの管理画面では、最新デプロイの状態を確認します。

確認する項目:

  • 最新コミットがデプロイ対象になっているか
  • デプロイが成功しているか
  • Production branchが main になっているか
  • ビルドログにエラーが出ていないか

ブラウザのキャッシュが残っている場合もあるため、強制再読み込みも試します。

Windowsの主なショートカット:

Ctrl + F5

13. 公開用フォルダだけを別リポジトリにする場合の注意点

dist フォルダだけを独立したGitリポジトリにすると、開発用ソースコードをGitHubへ公開せず、公開ファイルだけを管理できます。

構成例:

sample-site
├─ src
├─ package.json
├─ その他の開発ファイル
└─ dist
   ├─ .git
   ├─ index.html
   ├─ assets
   └─ images

この方法には、次のような特徴があります。

メリット

  • 公開用ファイルだけをGitHubで管理できる
  • 開発用ソースコードを分離できる
  • Cloudflare Pagesの設定がシンプルになる
  • 小規模な静的サイトでは分かりやすい

注意点

  • dist の再生成後に変更内容を確認する必要がある
  • 古いファイルが残らないように注意する
  • 開発用ソースコード側のバックアップは別途必要
  • 開発用と公開用でGit管理が分かれる

ソースコードも含めて継続的に開発する場合は、プロジェクト全体をGitで管理し、Cloudflare Pages側でビルドする方法も検討できます。

まとめ

Windows環境でも、GitHubとCloudflare Pagesを組み合わせることで、静的サイトを公開できます。

基本的な流れは次のとおりです。

ローカルでサイトを作成
↓
公開用ファイルをGitへ追加
↓
GitHubへプッシュ
↓
Cloudflare Pagesが自動デプロイ
↓
公開サイトへ反映

初回はGitリポジトリの作成やCloudflare Pagesの設定が必要ですが、設定後の更新作業はシンプルです。

git add -A
git commit -m "Update site"
git push

小規模な個人開発サイト、ポートフォリオ、無料ツール、静的な案内サイトなどを公開するときに使いやすい構成です。

0
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
0
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?