Разверните ваш сайт Astro на Cloudflare Pages
Вы можете развернуть ваш проект Astro на Cloudflare Pages, платформе для фронтенд-разработчиков для совместной работы и развёртывания статических (JAMstack) и SSR веб-сайтов.
Это руководство включает:
- Как развернуть через панель управления Cloudflare Pages
- Как развернуть, используя Wrangler, интерфейс командной строки Cloudflare
- Как развернуть сайт SSR, используя
@astrojs/cloudflare
Необходимые условия
Заголовок раздела Необходимые условияЧтобы начать работу, вам понадобятся:
-
Учётная запись Cloudflare. Если у вас её ещё нет, вы можете создать бесплатную учётную запись Cloudflare в процессе.
-
Ваш код приложения загруженный в GitHub или в репозиторий GitLab.
Как развернуть сайт с использованием Git
Заголовок раздела Как развернуть сайт с использованием Git-
Настройте новый проект на Cloudflare Pages.
-
Загрузите свой код в ваш репозиторий Git (GitHub, GitLab).
-
Войдите в панель управления Cloudflare и выберите вашу учётную запись в Account Home > Pages.
-
Выберите Create a new Project и опцию Connect Git.
-
Выберите проект Git, который вы хотите развернуть, и нажмите Begin setup.
-
Используйте следующие настройки сборки:
- Предустановленный фреймворк:
Astro
- Команда сборки:
npm run build
- Каталог вывода сборки:
dist
- Предустановленный фреймворк:
-
Нажмите кнопку Сохранить и развернуть.
Как развернуть сайт с использованием Wrangler
Заголовок раздела Как развернуть сайт с использованием Wrangler- Установите CLI Wrangler.
- Аутентифицируйте Wrangler с вашей учётной записью Cloudflare, используя
wrangler login
. - Запустите вашу команду сборки.
- Разверните, используя
npx wrangler pages deploy dist
.
После загрузки ваших ресурсов, Wrangler даст вам URL для предварительного просмотра вашего сайта. Когда вы войдёте в панель управления Cloudflare Pages, вы увидите ваш новый проект.
Включение предварительного просмотра локально с помощью Wrangler
Заголовок раздела Включение предварительного просмотра локально с помощью WranglerДля работы предварительного просмотра, вам необходимо установить wrangler
Затем можно обновить скрипт предварительного просмотра для запуска wrangler
вместо встроенной команды предварительного просмотра Astro:
Как развернуть сайт SSR
Заголовок раздела Как развернуть сайт SSRВы можете собрать сайт Astro SSR для развертывания на Cloudflare Pages с помощью адаптера @astrojs/cloudflare
(EN).
Для настройки адаптера выполните следующие действия. Затем вы можете развернуть систему, используя любой из описанных выше подходов.
Быстрая установка
Заголовок раздела Быстрая установкаДобавьте адаптер Cloudflare для включения SSR в ваш проект Astro с помощью следующей команды astro add
. Это позволит установить адаптер и внести соответствующие изменения в файл astro.config.mjs
за один шаг.
Ручная установка
Заголовок раздела Ручная установкаЕсли вы предпочитаете установить адаптер вручную, выполните следующие два шага:
-
Добавьте адаптер
@astrojs/cloudflare
в зависимости вашего проекта, используя ваш менеджер пакетов по умолчанию. Если вы используете npm или не уверены, выполните следующее в терминале: -
Добавьте следующий код в ваш файл
astro.config.mjs
:
Устранение неполадок
Заголовок раздела Устранение неполадокГидратация на стороне клиента
Заголовок раздела Гидратация на стороне клиентаГидратация на стороне клиента может завершиться неудачно из-за настройки автоматического минимизирования Cloudflare. Если вы видите Hydration completed but contains mismatches
в консоли, убедитесь, что автоматическое минимизирование отключено в настройках Cloudflare.
API среды выполнения Node.js
Заголовок раздела API среды выполнения Node.jsЕсли вы собираете проект, использующий рендеринг по требованию с адаптером Cloudflare SSR (EN), и сервер не может быть собран с сообщением об ошибке, например [Error] Could not resolve "XXXX. The package "XXXX" wasn't found on the file system but is built into node.
:
-
Это означает, что пакет или импорт, который вы используете в среде сервера, не совместим с API среды выполнения Cloudflare.
-
Если вы напрямую импортируете API среды выполнения Node.js, обратитесь к документации Astro по совместимости с Cloudflare Node.js (EN), чтобы узнать, как решить эту проблему.
-
Если вы импортируете пакет, который импортирует API среды исполнения Node.js, уточните у автора пакета, поддерживает ли он синтаксис импорта
node:*
. Если нет, вам, возможно, придется найти альтернативный пакет.