INTEGRITY Документация

Astro

Начало из CLI: Создайте каркас проекта Astro на Workers и выберите шаблон.

npm create cloudflare@latest -- my-astro-app --framework=astro

Или просто разверните: Создайте статический блог на Astro и разверните его в Cloudflare Workers: CI/CD и превью уже настроены за вас.

Развертывание в Workers

Что такое Astro?

Astro это веб-фреймворк JavaScript, предназначенный для создания сайтов, отображающих большие объёмы контента (например, блогов, сайтов документации или интернет-магазинов).

Astro делает акцент на производительности за счёт минимизации клиентского JavaScript: по умолчанию он рендерит как можно больше контента на этапе сборки, либо по требованию на «сервере», то есть это может быть Cloudflare Worker. «Острова» JavaScript добавляются только там, где нужна интерактивность или персонализация.

Astro также не привязан к конкретному UI-фреймворку и поддерживает все основные фреймворки, включая React, Preact, Svelte, Vue и SolidJS, через свои официальные интеграции.

Развертывание нового проекта Astro на Workers

  1. Создайте новый проект с помощью create-cloudflare CLI (C3).

    npm create cloudflare@latest -- my-astro-app --framework=astro

    Что происходит за кулисами?

    Когда вы выполняете эту команду, C3 создаёт каталог нового проекта, инициализирует Официальный инструмент настройки Astro, и настраивает проект для Cloudflare. Затем предлагается возможность мгновенно развернуть ваше приложение в Cloudflare.

  2. Локальная разработка.

    После создания проекта выполните следующую команду в каталоге проекта, чтобы запустить локальный сервер разработки.

    npm run dev
  3. Разверните ваш проект.

    Проект можно развернуть в *.workers.dev поддомен или пользовательский домен с локального компьютера или из любой системы CI/CD (включая Workers Builds). Используйте следующую команду для сборки и развёртывания. Если вы используете CI-сервис, обязательно обновите соответствующим образом свою команду "deploy command".

    npm run deploy

Развертывание существующего проекта Astro на Workers

узел Framework
AstroОбнаружено
Коннектор: Framework to Config
элементы конфигурации
Сгенерированная конфигурация
wrangler.jsonc
main:dist/_worker.js/index.js
wrangler.jsonc
assets:directory: ./dist, binding: ASSETS
wrangler.jsonc
compatibility_flags:nodejs_compat
wrangler.jsonc
наблюдаемость:enabled: true
astro.config.mjs
адаптер:@astrojs/cloudflare
Коннектор: Config to Workers
WorkersРазвернуто
Индикатор статуса
Wrangler настраивает конфигурацию автоматически

Настройка вручную

Если вы предпочитаете настроить проект вручную, выполните шаги ниже.

Если у вас статический сайт

Если ваш проект на Astro полностью предварительно рендерится, выполните следующие шаги:

  1. Добавление файла конфигурации Wrangler

    В корне проекта создайте файл конфигурации Wrangler со следующим содержимым:

    {
    	"name": "my-astro-app",
    	// Set this to today's date
    	"compatibility_date": "2026-08-28",
    	"assets": {
    		"directory": "./dist"
    	}
    }
    name = "my-astro-app"
    # Set this to today's date
    compatibility_date = "2026-08-28"
    
    [assets]
    directory = "./dist"

    Что делает эта конфигурация?

    Ключевой частью этой конфигурации является assets поле, которое указывает Wrangler, где искать статические ресурсы. В этом случае мы указываем Wrangler искать в ./dist каталог. Если ваши ресурсы находятся в другом каталоге, обновите directory значение соответствующим образом. Подробнее о других параметры конфигурации ресурсов.

    Также обратите внимание, что здесь нет main поле в этой конфигурации: это потому, что вы обслуживаете только статические ресурсы, поэтому код Worker для рендеринга по требованию или SSR не нужен.

  2. Создайте и разверните свой проект

    Проект можно развернуть в *.workers.dev поддомен или пользовательский домен с локального компьютера или из любой системы CI/CD (включая Workers Builds). Используйте следующую команду для сборки и развёртывания. Если вы используете CI-сервис, обязательно обновите соответствующим образом свою команду "deploy command".

    npx astro build
    npx wrangler@latest deploy

Если на вашем сайте используется рендеринг по требованию

Если ваш проект на Astro использует рендеринг по требованию (также известный как SSR), выполните следующие шаги:

  1. Установка адаптера Astro для Cloudflare

    npx astro add cloudflare

    Что происходит за кулисами?

    Эта команда устанавливает адаптер Cloudflare и вносит необходимые изменения в ваш astro.config.mjs файл за один шаг. По умолчанию это задает конфигурацию выходных данных сборки как output: 'server', который по умолчанию рендерит все ваши страницы на сервере. Если есть страницы, которые Нельзя нуждаются в рендеринге по требованию (SSR), например статические страницы вроде политики конфиденциальности, следует задать export const prerender = true для этой страницы или маршрута, чтобы предварительно рендерить её. Подробнее о параметрах конфигурации адаптера можно узнать в документации Astro.

  2. Добавьте .assetsignore файл Создайте .assetsignore файл в вашем public/ папку и добавьте в неё следующие строки:

    .assetsignore
    _worker.js
    _routes.json
  3. Добавление файла конфигурации Wrangler

    В корне проекта создайте файл конфигурации Wrangler со следующим содержимым:

    {
    	"name": "my-astro-app",
    	"main": "./dist/_worker.js/index.js",
    	// Update to today's date
    	// Set this to today's date
    	"compatibility_date": "2026-08-28",
    	"compatibility_flags": ["nodejs_compat"],
    	"assets": {
    		"binding": "ASSETS",
    		"directory": "./dist"
    	},
    	"observability": {
    		"enabled": true
    	}
    }
    name = "my-astro-app"
    main = "./dist/_worker.js/index.js"
    # Set this to today's date
    compatibility_date = "2026-08-28"
    compatibility_flags = [ "nodejs_compat" ]
    
    [assets]
    binding = "ASSETS"
    directory = "./dist"
    
    [observability]
    enabled = true

    Что делает эта конфигурация?

    Ключевые части этой конфигурации:

    • main указывает на точку входа скрипта Worker. Он создаётся адаптером Astro и обеспечивает работу страниц, отрисованных на сервере.
    • assets.directory сообщает Wrangler, где искать статические ресурсы. В данном случае мы указываем Wrangler искать в ./dist каталог. Если ваши ресурсы находятся в другом каталоге, обновите directory значение соответствующим образом.

    Подробнее о Параметры конфигурации Wrangler и параметры конфигурации ресурсов.

  4. Создайте и разверните свой проект

    Проект можно развернуть в *.workers.dev поддомен или пользовательский домен с локального компьютера или из любой системы CI/CD (включая Workers Builds). Используйте следующую команду для сборки и развёртывания. Если вы используете CI-сервис, обязательно обновите соответствующим образом свою команду "deploy command".

    npx astro build
    npx wrangler@latest deploy

Bindings

Благодаря bindings ваше приложение на Astro можно полностью интегрировать с Cloudflare Developer Platform, получив доступ к вычислениям, хранилищу, AI и другим возможностям. См. обзор привязок с дополнительной информацией о доступных возможностях и их настройке.

Документация Astro содержат информацию о том, как получить к ним доступ в вашем locals.

Сеансы

Astro Sessions API позволяет хранить пользовательские данные между запросами, например настройки пользователя, содержимое корзины или данные аутентификации. При использовании адаптера Cloudflare Astro автоматически настраивает Workers KV для хранилища сессий.

Wrangler автоматически создаёт пространство имён KV с именем SESSION при развёртывании, поэтому ручная настройка не требуется.

---
export const prerender = false;
const cart = await Astro.session?.get("cart");
---

<a href="/checkout">{cart?.length ?? 0} items</a>

Имя привязки KV можно настроить с помощью sessionKVBindingName опцию adapter, если хотите использовать другое имя привязки.

Пользовательские страницы 404

Чтобы настроить собственную страницу 404 для сайта на Astro, добавьте not_found_handling в конфигурацию Wrangler:

{
	"assets": {
		"directory": "./dist",
		"not_found_handling": "404-page"
	}
}
[assets]
directory = "./dist"
not_found_handling = "404-page"

Это указывает Cloudflare отдавать вашу пользовательскую страницу 404 (например, src/pages/404.astro) если маршрут не найден. Подробнее см. поведение маршрутизации статических ресурсов.

Конфигурация сборки Astro

Адаптер Astro для Cloudflare устанавливает конфигурацию вывода сборки в output: 'server', это означает, что все страницы рендерятся по запросу в вашем Cloudflare Worker. Если есть страницы, которые Нельзя нуждаются в рендеринге по требованию (SSR), например такие статические страницы, как политика конфиденциальности, следует задать export const prerender = true для этой страницы или маршрута, чтобы отрендерить её заранее. Подробнее о рендеринге по требованию можно узнать в документации Astro.

Если вы хотите использовать Astro как генератор статических сайтов, адаптер Astro для Cloudflare вам не нужен. По умолчанию Astro предварительно рендерит все страницы на этапе сборки, и вы можете просто загрузить эти статические ресурсы для раздачи через Cloudflare.

Требования к Node.js

Astro 5.x поддерживает Node.js 18.20.8, Node.js 20.3.0 и более поздние выпуски 20.x, а также Node.js 22.0.0 и новее. Astro 6.x и 7.x требуют Node.js 22.12.0 или новее. Если вы используете Workers Builds, его версия Node.js по умолчанию соответствует этим требованиям. Если вы переопределяете версию по умолчанию, выберите версию, которая соответствует Требования Astro к Node.js.