プログラミング

VS Codeで変更したのにサイトに反映されない原因|保存・GitHub・公開を順に確認

VS Codeの編集がWebサイトへ反映されないとき、保存、ローカルサーバー、commitとpush、Cloudflare Pagesのデプロイを順に確認。キャッシュを疑う前の切り分けを解説します。

VS Codeで文章を変えたのに、ブラウザーでは前のまま。何度も更新しているうちに、「保存できていない? 公開の失敗?」と分からなくなりますよね。

まず、編集したファイルがどこまで届いているかを確かめます。PCへの保存と、インターネットの公開先への反映は、別の工程です。

このサイト制作でも、コマンドが見つからない問題や開発サーバーの起動エラー、公開用の操作が進まない問題がありました。症状が似ていても、止まる場所によって直し方が変わります。この記事はAstroとGitHub連携のCloudflare Pagesを主な例に、切り分ける順番を説明します。

まずアドレス欄を見て、何を開いているか確認する

URLの例 見ているもの
file:///C:/study/index.html PC内のファイルを直接開いたページ
http://localhost:4321/ PCで起動した開発サーバーのページ
https://example.pages.dev/ Cloudflare Pagesの公開サイト
https://account.github.io/project/ GitHub Pagesの公開サイト

localhostは基本的に自分のPCを指す名前です。開発サーバーは、編集中のサイトを確認するためにPCで動かす仕組みです。

例えば公開サイトを見ながらPCのファイルを保存しても、それだけでは公開先へ届きません。先にローカルで確認し、次に公開の工程を追います。localhostで動いたURLを送っても、相手が自分のPCの同じ画面を見られるわけではありません。

保存したファイルと、開いたプロジェクトをそろえる

Windowsなら、まず対象ファイルでCtrl + Sを押します。VS Codeのタブに未保存を示す丸い印が残っていないか見てください。自動保存も設定できますが、アプリが前の編集を覚えていることと、ファイルへの保存は別です。VS Code公式:保存と自動保存

次にパス全体を確認します。Desktop\my-siteとDocuments\my-siteを両方持っていると、別のコピーを編集している可能性があります。

PowerShellのターミナルで、現在地を調べます。

Get-Location

その場所と、VS Codeで開いたフォルダーを比べます。Git管理している場合は、git rev-parse --show-toplevelでもリポジトリの一番上を確認できます。エラーになる場合は、not a git repositoryの確認手順を使ってください。

表示する文章を一時的に分かりやすいものへ変え、どこまで届くか目印にするのも有効です。確認後に元へ戻せる小さな変更にします。

ローカルで変わらないなら、開発サーバーを確認する

Astroのソースである.astroファイルは、HTMLのようにダブルクリックするだけでは確認できません。プロジェクトの開発サーバーを起動し、ターミナルに表示されたURLを開きます。

既存プロジェクトでは、使っているパッケージ管理ツールとpackage.jsonの手順に合わせます。devという実行設定があるnpmのプロジェクトなら、例えば次です。

npm run dev

このサイトのようにpnpmを使うプロジェクトならpnpm devです。WindowsのPowerShellでnpm.ps1などの実行制限に止められる場合は、インストール済みのnpm.cmd run devやpnpm.cmd devで実行できる場合があります。npm自体が見つからない問題とは区別してください。

Astroの開発サーバーは変更を監視し、通常は保存すると表示を更新します。URLのポート番号は空き状況などで変わるため、4321を決め打ちせず、今回起動した端末の表示を読みます。Astro公式:開発とビルド

起動時にエラーで終了しているなら、ブラウザーの更新より先にそのエラーを直します。ターミナルを閉じてサーバーが止まっている場合も、起動し直します。

また、Astroでトップページを直すなら通常はsrc/pages/index.astroなどの元ファイルを編集します。ビルドで作るdist内だけを直すと、次のビルドで上書きされます。

GitHubへ変更が届いているか確認する

GitHub連携で公開している場合、ローカルで表示できた次の確認先はGitHubです。

git status
git branch --show-current
git log --oneline -3

コミットは編集を履歴へ記録する操作、pushはその履歴をGitHubなどの接続先へ送る操作です。保存しただけのファイルは、pushだけでは届きません。

コミットとpushを済ませたら、GitHubの対象ブランチで、変更した文章と最新コミットを開きます。具体的な記録・送信方法は、pushとpullの基本を参照してください。

Everything up-to-dateは「今回送れる履歴の更新がない」という意味で、編集中の内容まで公開できた保証ではありません。git statusに変更が残っていないか、違うブランチへ送っていないか確認します。

送信がnon-fast-forwardで拒否された場合は、履歴を消さずにpushを直す方法へ。強制送信して表示だけ直そうとしないでください。

Cloudflare Pagesで、そのコミットが本番公開されたか確認する

GitHubが新しくても、公開用ファイルを作って配置する工程が残っています。ビルドは公開用ファイルの作成、デプロイは公開先への配置です。

CloudflareのWorkers & Pagesから対象プロジェクトを開き、デプロイ一覧で次を見ます。

  1. 今送ったコミットを使うデプロイがあるか。
  2. 対象が本番環境か、確認用のプレビュー環境か。
  3. 処理が成功しているか。失敗ならビルドログの最初の具体的なエラーは何か。

Git連携では、設定したブランチなどの条件に応じてデプロイが動きます。本番用ブランチ以外の変更がプレビューだけに反映されることもあります。自動デプロイの停止設定や対象パスの設定も確認します。Cloudflare公式:Git連携、ブランチごとのデプロイ制御

成功したデプロイに紐づくURLを開き、変更した文章を探します。ビルドが失敗したときは、以前の成功したサイトが表示され続ける場合があるため、「サイトが開けるから今回も成功」とは判断できません。

GitHub Pagesを使っている場合は、Cloudflareの画面ではなくGitHubのActionsとSettings → Pagesを確認します。公開元がブランチなのかActionsの処理なのかも、プロジェクトの設定に合わせます。GitHub公式:公開元の設定

最後にブラウザーのキャッシュを確認する

正しいコミットの本番デプロイが成功し、URLも合っている。それでも古いときに、保存済みデータの再利用であるキャッシュを疑います。

まずWindowsのChromeやEdgeならCtrl + Shift + Rで再読み込みし、別のブラウザーでも同じ公開URLを確認します。開発者ツールのNetworkで返されたHTMLの内容を見ると、文章自体が古いのか、CSSなど見た目だけが古いのかを分けられます。

キャッシュはブラウザー以外にもあります。別端末でも同じなら、公開先・独自ドメインの向き先・配信側のキャッシュ設定を調べます。PWAのService Workerを使うサイトでは、その更新処理が関係する場合もあります。最初からすべての閲覧データを消す必要はありません。

練習:更新が止まっている場所を判断する

ローカルの開発サーバーでは新しい見出しが表示されています。GitHubの同じファイルを見ると古いままです。公開サイトも古いまま。この場合、先に確認するのはキャッシュでしょうか、Gitの記録・送信でしょうか。

模範解答

Gitの記録・送信を確認します。git status、現在のブランチ、最新コミット、接続先を調べ、必要な変更を確認してコミット・pushします。その後、GitHubと公開先のデプロイを確認します。

解説

GitHubまで届いていないので、ブラウザーを何度更新しても新しい内容は取得できません。反対に、GitHubが新しくてデプロイが失敗しているなら、調べるべきはそのビルドログです。

「保存 → ローカル表示 → GitHub → 本番デプロイ → 公開URL」の順に、目印の文章を探してみてください。最後に新しく表示できた場所と、その次の場所の間が、次に調べる範囲です。

← 記事一覧へ戻る