Разверните свой сайт Astro на GitHub Pages
Вы можете использовать GitHub Pages, чтобы разместить в Интернете сайт Astro прямо из репозитория на GitHub.com.
Как развернуть
Заголовок раздела «Как развернуть»Вы можете развернуть сайт Astro на GitHub Pages, используя GitHub Actions чтобы автоматически собрать и развернуть свой сайт. Для этого исходный код сайта должен располагаться на GitHub.
Astro поддерживает официальный withastro/action
чтобы развернуть ваш сайт с минимальной конфигурацией. Следуйте инструкциям ниже, чтобы развернуть свой сайт Astro на GitHub Actions, и смотрите README проекта для дополнительной информации.
Настройте Astro для GitHub Pages
Заголовок раздела «Настройте Astro для GitHub Pages»Развёртывание на github.io
URL
Заголовок раздела «Развёртывание на github.io URL»Установите опции site
(EN) и base
(EN) в astro.config.mjs
.
import { defineConfig } from 'astro/config'
export default defineConfig({ site: 'https://astronaut.github.io', base: 'my-repo',})
Значение site
должно быть одним из следующих:
- Следующий URL на основе вашего имени пользователя:
https://<имя-пользователя>.github.io
- Случайный URL, автоматически сгенерированный для приватной страницы организации GitHub:
https://<случайная-строка>.pages.github.io/
Значение base
может быть необходимо, чтобы Astro считал имя репозитория (например /my-repo
) как корень вашего сайта.
Не устанавливайте параметр base
, если:
- Ваша страница развёрнута из корневой директории.
- Ваш репозиторий расположен на
https://github.com/<ИМЯ-ПОЛЬЗОВАТЕЛЯ>/<ИМЯ-ПОЛЬЗОВАТЕЛЯ>.github.io
.
Значение для base
должно быть именем репозитория, начинающееся с косой черты, например /my-blog
. Благодаря этому Astro понимает, что корнем вашего сайта является /my-repo
, а не /
(по умолчанию).
Когда это значение настроено, все внутренние ссылки на страницы должны начинаться с вашего значения base
:
<a href="/my-repo/about">О проекте</a>
Узнайте больше о настройке значения base
(EN)
Использование GitHub Pages с кастомным доменом
Заголовок раздела «Использование GitHub Pages с кастомным доменом»Вы можете настроить кастомный домен, добавив следующий ./public/CNAME
файл в свой проект:
sub.mydomain.com
Благодаря этому сайт будет развёрнут на ваш кастомный домен вместо user.github.io
. Не забудьте также настроить DNS для своего провайдера домена.
Чтобы настроить Astro для использования GitHub pages с кастомным доменом, установите своё доменное имя как значение для site
. Не устанавливайте значение для base
:
import { defineConfig } from 'astro/config'
export default defineConfig({ site: 'https://example.com',})
Настройте GitHub Action
Заголовок раздела «Настройте GitHub Action»-
Создайте в вашем проекте новый файл с именем
.github/workflows/deploy.yml
и вставьте в него следующий YAML.deploy.yml name: Deploy to GitHub Pageson:# Вызывать workflow при каждом пуше в ветку `main`# Используете другое имя для ветки? Замените `main` на имя своей веткиpush:branches: [ main ]# Разрешает запускать этот workflow вручную с вкладки Actions на GitHub.workflow_dispatch:# Разрешить этому workflow клонировать репозиторий и создавать развёртывание Pagespermissions:contents: readpages: writeid-token: writejobs:build:runs-on: ubuntu-lateststeps:- name: Checkout your repository using gituses: actions/checkout@v4- name: Install, build, and upload your siteuses: withastro/action@v3# with:# path: . # Корень вашего проекта Astro внутри репозитория (опционально)# node-version: 20 # Версия Node, которую следует использовать для сборки сайта. По умолчанию 20. (опционально)# package-manager: pnpm@latest # Менеджер пакетов Node, который следует использовать для установки зависимостей и сборки сайта. Автоматически определяется на основе лок-файла. (опционально)deploy:needs: buildruns-on: ubuntu-latestenvironment:name: github-pagesurl: ${{ steps.deployment.outputs.page_url }}steps:- name: Deploy to GitHub Pagesid: deploymentuses: actions/deploy-pages@v4Action Astro принимает несколько опциональных значений, которые могут быть переданы путём раскомментирования строки с
with
и нужной строки.Официальный Astro action сканирует лок-файл для определения предпочтительного пакетного менеджера (
npm
,yarn
,pnpm
, илиbun
). Вы должны закоммитить автоматически сгенерированный пакетным менеджером файлpackage-lock.json
,yarn.lock
,pnpm-lock.yaml
, илиbun.lockb
в свой репозиторий. -
(Опционально) Если вы передаёте переменные среды в свой проект Astro во время локальной разработки или превью-сборок, вам необходимо определить публичные переменные в файле
deploy.yml
, чтобы они были обработаны во время развёртывания на GitHub Pages. (Смотрите документацию GitHub по установке секретов для добавления приватных переменных среды.)deploy.yml jobs:build:runs-on: ubuntu-lateststeps:- name: Checkout your repository using gituses: actions/checkout@v4- name: Install, build, and upload your siteuses: withastro/action@v3env:# Используйте одинарные кавычки для значения переменнойPUBLIC_EVM_WALLET_ADDRESS: '0x4bFc229A40d41698154336aFF864f61083E76659' -
На GitHub, перейдите в настройки вашего репозитория (вкладка Settings) и найдите секцию Pages.
-
Выберите GitHub Actions как Source (источник) вашего сайта.
-
Сделайте коммит нового файла workflow и запушьте на GitHub.
Ваш сайт уже должен быть опубликован! При каждом пуше в репозиторий проекта Astro, GitHub Action автоматически развернёт изменения.