Проблема: Cloudflare не кэширует статические файлы (CSS, JS, изображения, шрифты). Ответы возвращаются с сервера происхождения (origin) без задействования edge-кэша.

Причины:
1. Заголовки Cache-Control — на origin установлены `no-cache`, `no-store`, `private` или `max-age=0`. Cloudflare уважает эти директивы (кроме случая Edge Cache TTL).
2. Query String — разные URL с динамическими параметрами (например, `?v=1`, `?timestamp=...`) не кэшируются, если не включена опция «Ignore Query String».
3. Настройки Page Rules / Cache Rules — явное отключение кэширования для определенных путей (Bypass Cache) или не заданные правила для статики.
4. HTTP методы — Cloudflare кэширует только GET и HEAD. POST/PUT/DELETE не кэшируются.
5. Куки — если ответ содержит заголовок `Set-Cookie`, Cloudflare по умолчанию не кэширует страницу (для HTML), для статики это редко, но бывает.
6. Origin-сервер возвращает статус не 200 — 404, 403, 5xx не кэшируются без специальных настроек.
7. Cloudflare план — бесплатный план, уровень кэширования «Standard» может не кэшировать некоторые статические ресурсы, если они не входят в список расширений по умолчанию (полный список в панели Cloudflare → Caching).

Решение:
1. Диагностика — проверьте заголовки ответа от origin через `curl -I https://your-site.com/style.css`:
bash
curl -I https://example.com/static/style.css

Ищите `cf-cache-status: MISS` или `DYNAMIC`. Норма — `HIT`.

2. Настройка origin — на веб-сервере (nginx, apache) укажите для статики:
nginx
location ~ \.(css|js|jpg|jpeg|png|gif|ico|woff2|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable, max-age=31536000";
}

Исключить `Set-Cookie` для этих файлов.

3. Cloudflare → Caching → Configuration:
- Включите «Ignore Query String» (если версионирование через `?v=...`).
- Установите «Browser Cache TTL» ≥ 4 часа.
- Для статики — уровень «Standard» или «Simplified» (не «No Resource»).

4. Cloudflare → Page Rules (или Cache Rules):
- Создайте правило для статики: `domain.com/.css` → Cache Level: Standard, Edge Cache TTL: 1 месяц.
- Или используйте современные Cache Rules: If URL contains `.css` → set Edge TTL → Override origin TTL.

5. Проверка — после изменений очистите кэш Cloudflare и запросите файл:
bash
curl -sI https://example.com/static/style.css | grep cf-cache-status

Ожидайте `HIT`.

6. Если не помогло — проверьте, не блокирует ли кэширование WAF-правило (Cloudflare → Security → WAF → Custom Rules). Временно отключите для теста.