まなびのすけ
ホーム›メモ›Web開発› AstroでWEBサイトを作ってみた|GitHub Actionsでビルド

AstroでWEBサイトを作ってみた|GitHub Actionsでビルド

2026.08.06 更新

Astroについて、特徴、ディレクトリ構造、このサイトでの使い方などについてまとめました。

Astroとは?

Astroは、ページの高速表示が得意なWebフレームワークです。

※フレームワークとは、アプリやWebサイトの開発に必要な土台・骨組みのことです。

Astro公式サイトのトップ画面。「The web framework for content-driven websites」という見出しと Get Started ボタン、npm create astro@latest のコマンドが表示されている。
Astro公式サイト
  • SSG(Static Site Generation:静的サイト生成)と呼ばれる仕組み
  • ブラウザでWEBページの組み立て処理を行わず、事前に表示用のHTMLを生成(ビルド)する
  • ビルドは、JavaScriptランタイムやパッケージマネージャ環境で行う
  • ブラウザではすでに変換済みのHTMLを表示するので、表示速度が速い
  • React、Vue、SvelteなどのJavaScriptライブラリも読み込んで使える
まなびのすけ

Astroは、ブログやコーポレートサイトなど、表示速度を重視するWEBサイトでよく使われているみたいです。

Astroのディレクトリ構造

Astroの標準的なフォルダ構成は以下のとおりです。

my-astro-site/
├── public/...画像やfaviconなど
├── src/
│   ├── components/...ボタンやヘッダーなどの部品
│   ├── layouts/...レイアウトテンプレート
│   └── pages/...各ページ
├── astro.config.mjs...Astro各種設定ファイル
└── package.json...プロジェクトの構成情報

public/配下

public/に置いたファイルは、ビルドで加工されず、置いたときのパスのまま公開されます。画像やfavicon、robots.txtのように、変換の要らない素材を格納します。

  • public/logo.png → https://example.com/logo.png
  • public/favicon.svg → https://example.com/favicon.svg

pages/配下

src/pages/に置いたファイルは、そのままWEBサイトのURLになります。

  • src/pages/index.astro → https://example.com/
  • src/pages/about.astro → https://example.com/about
  • src/pages/blog/first.astro → https://example.com/blog/first
まなびのすけ

ディレクトリの作成は、AIエージェントに「Astroのディレクトリを作って」と言えばOKです。

Astroのビルド・デプロイ方法

Astroでは、Webサイトとして閲覧できるようにするために、JavaScriptランタイム環境(Node.jsなど)でビルド(HTML変換)を行う必要があります。

このサイト(まなびのすけ)の制作環境では、ローカルにJavaScriptランタイム環境がなくビルトができないので、GitHub Actionsを使ってビルドとデプロイ(ファイルをサーバーに配置)を行っています。

GitHub Actionsを使った手順

  1. .github/workflows/配下にGitHub Actionsの設定ファイル(.yml)を作成
  2. 上記に、ビルドとデプロイの処理をそれぞれ書く
  3. 修正したファイルをGitHubに送る(プッシュ)
  4. プッシュのタイミングで、.ymlが実行される
    • GitHub Actions上にあるNode.jsがHTML変換(ビルド)
    • 変換されたHTMLをサーバーへ配信(デプロイ)
まなびのすけ

このやり方だとローカルで確認ができない点が手間ですが、`staging`ブランチにプッシュするとstaging環境に公開され、`main`ブランチにマージすると本番環境に公開されるように設定しています。

よくある質問(FAQ)

Q. AstroはJSを使わないサイトという意味ですか?

いいえ、サイト上でJavaScriptを一切使えないという意味ではありません。開発時にはReactなどのコードを書けますし、必要なパーツ(フォームなど)だけに絞ってJavaScriptを動かせます。不要なコードを自動でカットする仕組みという意味です。

Q. Astroでは、Reactなどのライブラリが使えますか?

使えます。Astroはビルドする際に、Reactで書かれたパーツを解析して「計算済みのHTML」へ変換して出力します。そのため、ブラウザ側でReact本体を動かす必要がなくなり、高速に表示されます。

Q. AstroはWordPressと組み合わせて使えますか?

使えます。WordPressをデータ管理画面(ヘッドレスCMS)として使い、記事データをAstro側に読み込ませて静的ページを作る構成が一般的です。

参考文献

メモ一覧へ