Vercel
Content-Security-Policy
для статического контента
Чтобы Vercel обслуживал ваш статический контент с правильными заголовками Content-Security-Policy
, требуется дополнительная настройка.
А именно:
- Установите
securityHeaders.enableOnStaticPages.provider
в значение"vercel"
. - Установите адаптер
@astrojs/vercel/static
(установите пакет@astrojs/vercel
, который вы можете проверить в его документации).
Рассмотрим полный пример:
import { resolve } from 'node:path'
import vercel from '@astrojs/vercel/static';import { shield } from '@kindspells/astro-shield'import { defineConfig } from 'astro/config'
const rootDir = new URL('.', import.meta.url).pathnameconst modulePath = resolve(rootDir, 'src', 'generated', 'sriHashes.mjs')
export default defineConfig({ adapter: vercel(), integrations: [ shield({ // - Если установлено, то контролирует, как будут генерироваться заголовки безопасности. // - Если не установлено, то заголовки безопасности не будут генерироваться. securityHeaders: { // Эта опция необходима для настройки заголовков CSP для вашего статического // контента на Vercel. enableOnStaticPages: { provider: "vercel" },
// - Если установлено, то контролирует, как будет генерироваться заголовок // CSP (Content Security Policy). // - Если не установлено, то заголовок CSP не будет настроен для вашего // статического контента (нет необходимости указывать его внутренние параметры). contentSecurityPolicy: { // - Если установлено, контролирует значения по умолчанию директивы CSP // (они могут быть переопределены во время выполнения). // - Если не установлено, Astro-Shield будет использовать минимальный // набор директив по умолчанию. cspDirectives: { 'default-src': "'none'", } } } }) ]})