← Cloudflare Pages / pages / configuration
Раздача Pages
Cloudflare Pages использует ряд настроек по умолчанию для раздачи ваших сайтов на Pages. На этой странице описаны некоторые из этих решений, чтобы вы понимали, как работает Pages и как при необходимости переопределить часть поведения по умолчанию.
Сопоставление маршрутов
Если найден файл HTML с путем, совпадающим с текущим запрошенным маршрутом, Pages отдаст его. Pages также перенаправляет HTML-страницы на их варианты без расширения: например, /contact.html будет перенаправлен на /contact, а также /about/index.html будет перенаправлен на /about/.
Поведение Not Found
Можно задать пользовательскую страницу, которая будет отображаться, если Pages не может найти запрошенный файл, создав 404.html файл. После этого Pages попытается найти ближайшую страницу 404. Если она не найдена в том же каталоге, где расположен запрашиваемый маршрут, поиск продолжится вверх по дереву каталогов в поисках подходящего 404.html файл, оканчивающийся на /404.html. Это означает, что вы можете задавать собственные пути для страницы 404 для таких ситуаций, как /blog/404.html и /404.html, и Pages автоматически отобразит нужную в зависимости от ситуации.
Рендеринг одностраничных приложений (SPA)
Если в корне вашего проекта нет 404.html файл, Pages предполагает, что вы разворачиваете одностраничное приложение. Сюда относятся такие фреймворки, как React, Vue и Angular. По умолчанию Pages обрабатывает одностраничные приложения так, что все входящие пути сопоставляются с корневым (/), что позволяет обрабатывать такие URL, как /about или /help и обрабатывать их прямо в вашем SPA.
Кеширование и производительность
Рекомендации
В большинстве случаев не стоит настраивать собственное кеширование для своего сайта. В Pages по умолчанию встроено кеширование, оптимизированное для максимального кеширования при сохранении актуальности контента. При каждом развертывании ресурса в Pages он остается кешированным в Cloudflare CDN до следующего развертывания.
Поэтому если вы добавите кэширование в пользовательский домен, это может привести к тому, что после развёртывания будут отдаваться устаревшие ресурсы.
Кроме того, добавление кеширования для вашего собственного домена может вызвать проблемы с Перенаправления Pages или Функции Pages. Такие проблемы могут возникать из-за того, что закэшированный ответ отдается конечному пользователю раньше, чем Pages успевает обработать запрос.
Однако бывают ситуации, когда Cache Rules на вашем пользовательском домене действительно имеет смысл. Например, у вас могут быть локации с легко кешируемыми неизменяемыми ресурсами, например файлы CSS или JS с хешами содержимого в именах файлов. В этом случае специальное кеширование поможет ускорить работу для пользователей, пока файл (и связанное с ним имя файла) не изменится. Только убедитесь, что ваше кеширование не мешает работе редиректов или Functions.
Учтите, что при использовании Cloudflare Pages статические ресурсы, загруженные в рамках проекта Pages, автоматически обслуживаются из Tiered Cache. Отдельно включать Tiered Cache для пользовательского домена, на котором работает ваш проект Pages, не требуется.
Поведение
Для кеширования в браузере Pages всегда отправляет Etag заголовки для 200 OK ответов, которые браузер затем возвращает в If-None-Match заголовок при последующих запросах этого ресурса. Pages сравнивает If-None-Match заголовок из запроса с помощью Etag который планирует отправить, и если они совпадают, Pages вместо этого отвечает 304 Not Modified который сообщает браузеру, что можно безопасно использовать данные, сохранённые в локальном кэше.
На данный момент Pages возвращает 200 ответов на HTTP-запросы диапазона; однако команда работает над добавлением соответствующих спецификации 206 частичные ответы.
Pages также по возможности отдаёт ответы в форматах Gzip и Brotli.
Хранение ресурсов
Мы добавляем ресурсы в кеш отдельно для каждого дата-центра. Время жизни (TTL) ресурсов составляет одну неделю, но они могут исчезнуть в любой момент. При новом развёртывании ресурсы могут сохраняться в этом дата-центре до недели.
Headers
По умолчанию Pages автоматически добавляет несколько Заголовки HTTP-ответа ↗ при обслуживании ресурсов, включая:
Access-Control-Allow-Origin: *
Cf-Ray: $CLOUDFLARE_RAY_ID
Referrer-Policy: strict-origin-when-cross-origin
Etag: $ETAG
Content-Type: $CONTENT_TYPE
X-Content-Type-Options: nosniff
Server: cloudflare// if the asset has been encoded
Cache-Control: no-transform
Content-Encoding: $CONTENT_ENCODING
// if the asset is cacheable (the request does not have an `Authorization` or `Range` header)
Cache-Control: public, max-age=0, must-revalidate
// if requesting the asset over a preview URL
X-Robots-Tag: noindexЧтобы изменить заголовки, добавляемые Cloudflare Pages, например, добавить Early Hints - обновите файл _headers в вашем проекте.