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

Отладка Pages

При настройке проекта Pages вы можете столкнуться с различными ошибками, которые мешают успешно развернуть сайт. В этом руководстве рассматриваются распространённые ошибки и способы их устранения.

Проверьте журнал сборки

Ошибки сборки можно просмотреть в журнале сборки Pages. Чтобы открыть журнал сборки:

  1. На панели управления Cloudflare перейдите к разделу Workers & Pages страницу.

    Перейдите в Workers & Pages ↗
  2. Выберите свой проект Pages.

  3. Перейдите в Развёртывания > Просмотр сведений > Журнал сборки.

После входа в панель управления Cloudflare откройте лог сборки, следуя приведённым выше инструкциям

Возможные ошибки в логе сборки описаны в следующих разделах.

Инициализация среды сборки

Возможные ошибки на этом шаге могут быть вызваны некорректной установкой во время интеграции с Git.

Чтобы исправить это в GitHub:

  1. Войдите в свою учетную запись GitHub.
  2. Перейдите в Настройки из значка пользователя > найдите Приложения в разделе Integrations.
  3. Найдите Cloudflare Pages > Настройте > прокрутите вниз и выберите Удалить.
  4. Повторно авторизуйте пользователя/организацию GitHub на панели управления Cloudflare.

Чтобы исправить это в GitLab:

  1. Войдите в свою учетную запись GitLab.
  2. Перейдите в Настройки из значка пользователя > Приложения.
  3. Найдите Cloudflare Pages > прокрутите вниз и выберите Отозвать.

Учтите, что вам потребуется роль Мейнтейнер или выше, чтобы успешно связать репозиторий, иначе сборка завершится ошибкой.

Клонирование git-репозитория

Возможные ошибки на этом шаге могут быть вызваны отсутствием Git Large File Storage (LFS). Проверьте использование LFS в разделе GitHub и GitLab документация.

Также проверьте настройки подмодулей, перейдя в .gitmodules файл в корневом каталоге. Этот файл должен содержать и path и url свойство.

Пример корректной конфигурации:

[submodule "example"]
	path = example/path
	url = git://github.com/example/repo.git

Пример некорректной конфигурации:

[submodule "example"]
	path = example/path

или

[submodule "example"]
        url = git://github.com/example/repo.git

Сборка приложения

Возможные ошибки на этом шаге могут быть вызваны неправильной настройкой проекта Pages. Проверьте команду сборки, папку сборки и переменные окружения на предмет некорректной конфигурации.

Развертывание в глобальной сети Cloudflare

Возможные ошибки на этом шаге могут быть вызваны неверной настройкой Pages Functions. См. раздел Функции документацию, чтобы узнать больше о настройке Functions.

Если вы не используете Functions или уже проверили, что в конфигурации Functions нет ошибок, ознакомьтесь с Сайт статуса Cloudflare на предмет проблем в сети Cloudflare, которые могли привести к сбою сборки.

Различия между pages.dev и собственные домены

Если ваш собственный домен проксируется (с оранжевым облаком) через Cloudflare, будут применяться настройки вашей зоны, например кэширование.

Если новый контент не отображается, перейдите в Правила > Page Rules в панели управления Cloudflare и проверьте наличие Page Rule с Cache Everything включено. Если такое правило есть, удалите его: Pages управляет кешированием самостоятельно.

Если ошибки возникают на вашем пользовательском домене, но не на pages.dev домен, перейдите в DNS > Записи в панели управления Cloudflare и настройте DNS-запись вашего проекта так, чтобы она была DNS Only (серое облако). Если ошибка не исчезает, проверьте конфигурацию своей зоны.

Домен завис на этапе проверки

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

Заблокированная HTTP-валидация

Pages использует проверку HTTP и должен обращаться к HTTP-эндпоинту в процессе проверки. Если на пути находится другой продукт Cloudflare (например, Доступ, редирект, Worker, и т. д.), проверка не может быть выполнена.

Чтобы проверить это, запустите curl команду для вашего домена, обращаясь к /.well-known/acme-challenge/randomstring. Например:

curl -s -o /dev/null -D - https://example.com/.well-known/acme-challenge/randomstring

HTTP/2 302
date: Mon, 03 Apr 2023 08:37:39 GMT
location: https://example.cloudflareaccess.com/cdn-cgi/access/login/example.com?kid=...&redirect_url=%2F.well-known%2Facme-challenge%2F...
access-control-allow-credentials: true
cache-control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
server: cloudflare
cf-ray: 7b1ffdaa8ad60693-MAN

В примере выше выполняется перенаправление на Cloudflare Access (как показано Location заголовок). В этом случае необходимо отключить Access для домена до тех пор, пока домен не будет подтверждён. После подтверждения домена Access можно снова включить.

То же самое нужно будет сделать и для Redirect Rules или примера Worker.

См. Устранение неполадок при проверке контроля домена (DCV) статью с более подробной информацией.

Отсутствующие записи CAA

Если ничего не блокирует HTTP-валидацию, возможно, у вас отсутствуют записи Certification Authority Authorization (CAA). Скорее всего, это произошло потому, что вы отключили Universal SSL или используйте внешнего провайдера.

Чтобы проверить это, запустите dig в корне пользовательского домена (или в зоне, если это зона поддомена). Например:

dig CAA example.com

; <<>> DiG 9.10.6 <<>> CAA example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59018
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.		IN	CAA

;; ANSWER SECTION:
example.com.	300	IN	CAA	0 issue "amazon.com"

;; Query time: 92 msec
;; SERVER: 127.0.2.2#53(127.0.2.2)
;; WHEN: Mon Apr 03 10:15:51 BST 2023
;; MSG SIZE  rcvd: 76

В приведённом выше примере есть только одна запись CAA, разрешающая Amazon выпускать сертификаты.

Чтобы устранить проблему, добавьте следующие записи CAA, разрешающие выпуск сертификатов всем удостоверяющим центрам (CA), которые использует Cloudflare:

example.com.            300     IN      CAA     0 issue "letsencrypt.org"
example.com.            300     IN      CAA     0 issue "pki.goog; cansignhttpexchanges=yes"
example.com.            300     IN      CAA     0 issue "ssl.com"
example.com.            300     IN      CAA     0 issuewild "letsencrypt.org"
example.com.            300     IN      CAA     0 issuewild "pki.goog; cansignhttpexchanges=yes"
example.com.            300     IN      CAA     0 issuewild "ssl.com"

Удержания зон

A блокировка зоны не позволит Pages добавить пользовательский домен для имени хоста, находящегося под zone hold.

Чтобы добавить пользовательский домен для хоста с zone hold, временно снять блокировку зоны в процессе настройки собственного домена.

После успешной настройки пользовательского домена вы можете восстановить блокировку зоны.

Отсутствует index.html в корне pages.dev URL

Если вы видите 404 ошибку на корневом pages.dev URL (example.pages.dev), скорее всего, у вас отсутствует index.html файл в проекте.

Загрузите index.html файл, чтобы устранить эту проблему.

Материалы

Если вам нужна дополнительная помощь по ошибкам сборки, обратитесь к своей команде по работе с аккаунтом Cloudflare (Enterprise) или ознакомьтесь с Центр поддержки для получения инструкций о том, как связаться со службой поддержки Cloudflare.

Вопросы также можно задать в разделе Pages Cloudflare Developers Discord.