Subresource Integrity
SRI позволяет браузеру проверить, что загруженный CSS/JS совпадает с ожидаемым хешем. В каталоге рассчитан SHA-384 для каждого файла. Включите переключатель SRI на странице библиотеки: integrity и crossorigin появятся в коде подключения.
Хеш относится к точным байтам, поэтому редактирование, дополнительная минификация или перевод окончаний строк изменят его. gzip и Brotli не требуют нового хеша: проверяется декодированное содержимое. Загружайте по FTP в бинарном режиме.
CORS
Для обычного script без SRI и link stylesheet возможна загрузка с другого домена без доступа JavaScript к содержимому ответа. Для cross-origin Fetch, ES-модулей и SRI сервер должен разрешить CORS. Статический HTML не может добавить заголовок к ответу сервера.
Access-Control-Allow-Origin: *Звёздочка подходит для публичной статики без credentials. Не включайте Allow-Credentials для этой конфигурации. Примеры Apache и Nginx находятся в config/. Если хостинг не разрешает менять заголовки, попросите его поддержку настроить CORS для каталога.
Кеширование
Для версионированных неизменяемых файлов в /libs/ и /packages/ уместно долгое кеширование. Для HTML, каталога и JSON API используйте повторную валидацию или короткий срок: метаданные могут обновляться.
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