@astrojs/ netlify
Este adaptador permite a Astro desplegar tu sitio renderizado en modo hybrid
o server
en Netlify.
Aprende como desplegar tu sitio Astro en nuestra guía de despliegue en Netlify.
¿Por qué Astro Netlify?
Sección titulada ¿Por qué Astro Netlify?Si estás usando Astro como un generador de sitios estáticos—su comportamiento es fuera de serie—no necesitas un adaptador.
Si deseas usar el renderizado bajo demanda, también conocido como renderizado del lado del servidor (SSR), Astro requiere un adaptador que coincida con tu entorno de despliegue.
Netlify es una plataforma de despliegue que te permite alojar tu sitio conectándolo directamente a tu repositorio de GitHub. Este adaptador mejora el proceso de construcción de Astro para preparar tu proyecto para el despliegue a través de Netlify.
Instalación
Sección titulada InstalaciónAgrega el adaptador de Netlify con el comando astro add
. Esto instalará el adaptador y hará los cambios apropiados en tu archivo astro.config.mjs
en un solo paso.
Añadir dependencias manualmente
Sección titulada Añadir dependencias manualmenteSi prefieres instalar el adaptador manualmente, completa los siguientes dos pasos:
- Instala el adaptador de Netlify en las dependencias de tu proyecto usando tu gestor de paquetes preferido. Si estás usando npm o no estás seguro, ejecuta esto en la terminal:
- Agrega dos nuevas líneas a tu archivo de configuración
astro.config.mjs
:
Lee la guía completa de despliegue aquí.
Sigue las instrucciones para construir tu sitio localmente. Después de construir, tendrás una carpeta .netlify/
que contiene tanto Funciones Netlify en la carpeta .netlify/functions-internal/
como Funciones Netlify Edge en la carpeta .netlify/edge-functions/
.
Para desplegar tu sitio, instala la CLI de Netlify y ejecuta:
El artículo del blog de Netlify sobre Astro y la documentación de Netlify proporcionan más información sobre cómo usar esta integración para desplegar en Netlify.
Acceder al contexto edge desde tu sitio
Sección titulada Acceder al contexto edge desde tu sitioLas Funciones Edge de Netlify proporcionan un objeto de contexto que incluye metadatos sobre la solicitud, como la IP de un usuario, datos de geolocalización y cookies.
Se puede acceder a través del objeto Astro.locals.netlify.context
:
Si estás usando TypeScript, puedes obtener tipos adecuados actualizando src/env.d.ts
para usar NetlifyLocals
:
Esto no está disponible en las páginas prerenderizadas.
Ejecutar el middleware de Astro en Funciones Edge
Sección titulada Ejecutar el middleware de Astro en Funciones EdgeCualquier middleware de Astro se aplica a las páginas prerenderizadas en tiempo de construcción y a las páginas renderizadas bajo demanda en tiempo de ejecución. Si estás usando el adaptador de Netlify Edge, puedes ejecutar el middleware de Astro en las Funciones Edge de Netlify para que se aplique a las páginas prerenderizadas y renderizadas bajo demanda.
Para implementar redirecciones, control de acceso o encabezados de respuesta personalizados para las páginas prerenderizadas, ejecuta tu middleware en las Funciones Edge de Netlify habilitando la opción edgeMiddleware
:
Para sitios estáticos, generalmente no necesitas un adaptador. Sin embargo, si utilizas la configuración de redirects
en tu archivo de configuración de Astro, puedes utilizar el adaptador de Netlify para traducirlo al formato adecuado de _redirects
.
Configurar edgeMiddleware: true
desplegará tu middleware como una Función Edge y lo ejecutará en todas las rutas, incluidas las páginas prerenderizadas. Sin embargo, los locales especificados en el middleware no estarán disponibles para ninguna página prerenderizada, ya que ya se han renderizado completamente en tiempo de construcción.
Soporte para Netlify Image CDN
Sección titulada Soporte para Netlify Image CDNEste adaptador utiliza el CDN de imágenes de Netlify para transformar imágenes sobre la marcha sin afectar a los tiempos de construcción. Es implementado usando un Servicio de Imágenes Astro bajo el capó.
Este adaptador no soporta las propiedades de configuración image.domains
e image.remotePatterns
en tu configuración de Astro. Para especificar rutas remotas para Netlify Image CDN, usa el campo remote_images
en netlify.toml
.
Sitios estáticos y redirecciones
Sección titulada Sitios estáticos y redireccionesPara sitios estáticos, generalmente no necesitas un adaptador. Sin embargo, si utilizas la configuración de redirects
en tu archivo de configuración de Astro, puedes utilizar el adaptador de Netlify para traducirlo al formato adecuado de _redirects
.
Una vez que ejecutes astro build
, se generará un archivo dist/_redirects
. Netlify utilizará ese archivo para enrutamiento adecuado de las páginas en producción.
Todavía puedes incluir un archivo public/_redirects
para redirecciones manuales. Cualquier redirección que especifiques en la configuración de redirecciones se añadirá al final de las redirecciones que hayas definido tú mismo.
Caché de páginas
Sección titulada Caché de páginasLas páginas renderizadas bajo demanda sin ningún contenido dinámico pueden ser almacenadas en caché para mejorar el rendimiento y reducir el uso de recursos.
Habilitar la opción cacheOnDemandPages
en el adaptador almacenará en caché todas las páginas renderizadas bajo demanda durante un año:
Esto se puede cambiar en cada página agregando encabezados de caché a tu respuesta:
Con control de caché de granularidad fina, Netlify soporta
encabdezados de caché estándar como CDN-Cache-Control
o Vary
.
Refiérete a la documentación para aprender a implementar, por ejemplo, el tiempo de vida (TTL) o el almacenamiento en caché obsoleto mientras se vuelve a validar (SWR): https://docs.netlify.com/platform/caching
Ejemplos
Sección titulada Ejemplos-
La plantilla de inicio de Astro Netlify Edge proporciona un ejemplo y una guía en el archivo README.
-
¡Explora proyectos de Astro Netlify en GitHub para más ejemplos!
Solución de problemas
Sección titulada Solución de problemasPara obtener ayuda, revisa el canal #support
en Discord. ¡Nuestros amigables miembros del Escuadrón de Soporte están aquí para ayudarte!
Puedes revisar nuestra Documentación de Integración de Astro para más información sobre integraciones.
Contribuyendo
Sección titulada ContribuyendoEste paquete es mantenido por el equipo central de Astro. ¡Estás invitado a enviar un problema o PR!
Changelog
Sección titulada ChangelogConsulta el CHANGELOG.md para un historial de cambios en esta integración.