Más mejoras experimentales de Content Security Policy, ¡ incluyendo servir el CSP usando tu adaptador preferido!
Astro 5.11 es un minor pequeño que incluye nuevas características de CSP y la capacidad de optar por no participar en HTML streaming cuando se usa el adaptador de Node.js.
Para actualizar un proyecto existente, usa la herramienta CLI automatizada @astrojs/upgrade. Alternativamente, actualiza manualmente ejecutando el comando de actualización para tu gestor de paquetes:
# Recommended:npx @astrojs/upgrade
# Manual:npm install astro@latestpnpm upgrade astro --latestyarn upgrade astro --latestCSP con adaptadores
Hasta ahora, las páginas estáticas solo podían servir el header de Content Security Policy (CSP) vía el elemento <meta http-equiv="content-security-policy">. Esto era una inconveniencia para algunos usuarios porque algunas directivas CSP como report-uri, frame-ancestors, y sandbox no se soportan en un elemento <meta>.
A partir de Astro 5.11.0, los adaptadores oficiales @astrojs/node, @astro/netlify, y @astro/vercel pueden especificar headers personalizados para páginas prerenderizadas. Esto significa que estos adaptadores ahora pueden establecer el header CSP para páginas estáticas, permitiendo soporte para todas las directivas, incluso en páginas prerenderizadas.
Esta es una característica experimental disponible habilitando la nueva opción de adaptador experimentalStaticHeaders:
import { defineConfig } from "astro/config";import node from "@astrojs/node";
export default defineConfig({ experimental: { csp: true }, adapter: node({ mode: "standalone", experimentalStaticHeaders: true })})Puedes empezar a usar esta característica hoy en Netlify, Vercel, y Node.js, con soporte para Cloudflare llegando pronto.
Pronto enviaremos soporte para Cloudflare también, que usará el archivo _headers.
Debajo del capó, los adaptadores aprovechan una nueva característica de la Adapter API llamada experimentalStaticHeaders. Si eres desarrollador de adaptadores, ahora puedes proporcionar capacidades completas de CSP a tus usuarios.
Deshabilitar HTML streaming
El adaptador @astrojs/node ahora puede configurarse para deshabilitar HTML streaming para páginas bajo demanda con la nueva opción experimentalDisableStreaming.
HTML streaming ayuda con el rendimiento y generalmente proporciona una mejor experiencia para el visitante. En la mayoría de los casos, deshabilitar el streaming no se recomienda.
Sin embargo, cuando necesitas deshabilitar HTML streaming (por ejemplo, tu host solo soporta caché de HTML no transmitido a nivel CDN), ahora puedes optar por no participar del comportamiento por defecto:
import { defineConfig } from 'astro/config';import node from '@astrojs/node';
export default defineConfig({ adapter: node({ mode: 'standalone', experimentalDisableStreaming: true })});Correcciones de bugs
Como siempre, hemos estado trabajando duro en corregir problemas desde el lanzamiento 5.10. Consulta el changelog para todos los detalles.
Comunidad
El core team de Astro es:
Alexander Niebuhr , Ben Holmes , Caleb Jasik , Chris Swithinbank , Emanuele Stoppa , Erika , Florian Lefebvre , Fred Schott , Fuzzy , HiDeoo , Luiz Ferraz , Matt Kane , Matthew Phillips , Nate Moore , Reuben Tier , Sarah Rainsberger , and Yan Thomas .
Gracias a todos los demás contribuidores que ayudaron a hacer posible Astro 5.11 con adiciones y mejoras de código y documentación, incluyendo:
Armand Philippot, coderfee, David Umoru, Dawid Gaweł, Durojaye Olusegun, Felix Eklöf, Fuan200, Happydev, Junseong Park, knj, Louis Escher, Martin Trapp, Matthew Justice, Michael Samoylov, michaltarasiuk, Nin3, Paul Valladares, pioupia, Rezix, Sgal Cheung, Thomas Bonnet, vivek lokhande, and vrabe


