Console/SRI, CORS и кеш
Origin status
GUIDE / DELIVERY

SRI, CORS и кеш

Прозрачная раздача начинается с правильных заголовков.

Subresource Integrity

SRI позволяет браузеру проверить, что загруженный CSS/JS совпадает с ожидаемым хешем. В каталоге рассчитан SHA-384 для каждого файла. Включите переключатель SRI на странице библиотеки: integrity и crossorigin появятся в коде подключения.

Хеш относится к точным байтам, поэтому редактирование, дополнительная минификация или перевод окончаний строк изменят его. gzip и Brotli не требуют нового хеша: проверяется декодированное содержимое. Загружайте по FTP в бинарном режиме.

HTML

CORS

Для обычного script без SRI и link stylesheet возможна загрузка с другого домена без доступа JavaScript к содержимому ответа. Для cross-origin Fetch, ES-модулей и SRI сервер должен разрешить CORS. Статический HTML не может добавить заголовок к ответу сервера.

HTTP RESPONSE HEADER
Access-Control-Allow-Origin: *

Звёздочка подходит для публичной статики без credentials. Не включайте Allow-Credentials для этой конфигурации. Примеры Apache и Nginx находятся в config/. Если хостинг не разрешает менять заголовки, попросите его поддержку настроить CORS для каталога.

Кеширование

Для версионированных неизменяемых файлов в /libs/ и /packages/ уместно долгое кеширование. Для HTML, каталога и JSON API используйте повторную валидацию или короткий срок: метаданные могут обновляться.

VERSIONED ASSETS ONLY
Cache-Control: public, max-age=31536000, immutable

Это рекомендуемая политика, а не заголовок, который сайт устанавливает сам. Нельзя отдавать годовой immutable для /v1/libraries.json, package.json без версии или HTML страниц.

MIME и HTTPS

Проверьте text/javascript для .js/.mjs, text/css для .css и application/json для .json. X-Content-Type-Options: nosniff помогает не допускать интерпретации ошибочного типа. Включите TLS у хостинга, чтобы не смешивать HTTP и HTTPS.

Ссылки на первичные документы

MDN: Subresource Integrity
MDN: Access-Control-Allow-Origin
MDN: Cache-Control

Найти в STATIC

Поиск выполняется локально Esc