Vercel
Content-Security-Policy
para contenido estático
Asegurar que Vercel sirve vuestro contenido estático con las cabeceras
Content-Security-Policy
correctas requiere algo de configuración adicional.
Concretamente:
- Asignad el valor
"vercel"
a la entradasecurityHeaders.enableOnStaticPages.provider
de vuestra configuración. - Asignad el adaptador
@astrojs/vercel/static
(instalad el paquete@astrojs/vercel
, podéis consultar su documentación.
Aquí tenéis un ejemplo más completo:
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({ // - Si se establece, controla cómo se generarán las cabeceras de // seguridad. // - Si no se establece, no se generarán cabeceras de seguridad. securityHeaders: { // Esta opción es necesaria para configurar las cabeceras CSP para tu // contenido estático en Vercel. enableOnStaticPages: { provider: "vercel" },
// - Si se establece, controla cómo se generará la cabecera CSP // (Content Security Policy). // - Si no se establece, no se configurará ninguna cabecera CSP // para tu contenido estático (no es necesario especificar sus // opciones internas). contentSecurityPolicy: { // - Si se establece, controla las directivas CSP "por // defecto" (pueden ser sobreescritas en tiempo de ejecución). // - Si no se establece, Astro-Shield usará un conjunto mínimo // de directivas por defecto. cspDirectives: { 'default-src': "'none'", } } } }) ]})