Páginas
Las páginas son componentes de Astro que se encuentran en la subcarpeta src/pages/
. Ellas son las responsables de manejar el enrutamiento, la carga de datos y el diseño general de cada página HTML de tu proyecto.
Tipos de página compatibles
Sección titulada Tipos de página compatiblesAstro es compatible con los siguientes tipos de archivos en el directorio src/pages/
:
.astro
.md
.mdx
(con la integración de MDX) instalada.html
- [
.js
/.ts
] (como endpoints)
Enrutamiento basado en archivos
Sección titulada Enrutamiento basado en archivosAstro aprovecha una estrategia de enrutamiento llamada enrutamiento basado en archivos. Cada archivo .astro
en la carpeta src/pages
se convierte en una página o un endpoint en tu proyecto de acuerdo a su ruta.
Un archivo puede generar múltiples páginas usando enrutamiento dinámico. Esto te permite crear páginas incluso si tu contenido está fuera del directorio especial /pages/
, como en una colección de contenido o un CMS.
Link entre páginas
Sección titulada Link entre páginasEscribe HTML estándar elementos <a>
en tus páginas Astro para enlazar a otras páginas en tu sitio. Usa una ruta URL relativa a tu dominio raíz como enlace, no una ruta de archivo relativa.
Por ejemplo, para enlazar a https://example.com/authors/sonali/
desde cualquier otra página en example.com
:
Páginas de Astro
Sección titulada Páginas de AstroLas páginas de Astro utilizan la extensión .astro
y tienen las mismas funcionalidades que los componentes de Astro.
Una página debe producir un documento HTML completo. Si no se incluye explícitamente, Astro agregará la declaración <!DOCTYPE html>
necesaria y el contenido de <head>
a cualquier componente .astro
ubicado dentro de src/pages/
de forma predeterminada. Puedes optar por no participar en este comportamiento en una base por componente marcándolo como una página parcial.
Para evitar repetir los mismos elementos HTML en cada página, puedes mover los elementos comunes <head>
y <body>
a sus propios componentes de plantilla. Puedes usar tantos o tan pocos componentes de plantilla como desees.
Páginas Markdown/MDX
Sección titulada Páginas Markdown/MDXAstro trata los archivos Markdown (.md
) dentro de src/pages/
como páginas en tu proyecto. Si tienes la integración de MDX instalada, también procesa los archivos MDX (.mdx
) de la misma manera.
Considera crear colecciones de contenido en lugar de páginas para directorios de archivos Markdown relacionados que comparten una estructura similar, como publicaciones de blog o elementos de productos.
Los archivos Markdown pueden usar la propiedad de frontmatter layout
para especificar un componente de plantilla que envolverá el contenido de Markdown en un documento de página <html>...</html>
.
Páginas HTML
Sección titulada Páginas HTMLLos archivos .html
pueden ser colocados en src/pages/
y usados directamente como páginas en tu proyecto. Ten en cuenta que algunas funcionalidades clave de Astro no son compatibles con Componentes HTML.
Página de error 404 personalizada
Sección titulada Página de error 404 personalizadaPara crear una página de error 404 personalizada, puedes crear un archivo 404.astro
o 404.md
en src/pages
.
Esto generará una página 404.html
que la mayoría de los servicios de despliegue encontrarán y usarán.
Página de error 500 personalizada
Sección titulada Página de error 500 personalizadaPara que una página de error 500 personalizada se muestre para las páginas que se renderizan bajo demanda, crea el archivo src/pages/500.astro
. Esta página personalizada no está disponible para las páginas prerenderizadas y no puede ser prerenderizada.
Si se produce un error al renderizar esta página, se mostrará la página de error 500 predeterminada de tu host a tu visitante.
Agregado en:
astro@4.10.3
Durante el desarrollo, si tienes un 500.astro
, el error lanzado en tiempo de ejecución se registra en tu terminal, en lugar de mostrarse en la superposición de errores.
Agregado en:
astro@4.11.0
src/pages/500.astro
es una página especial que recibe automáticamente una propiedad error
para cualquier error lanzado durante el renderizado. Esto te permite usar los detalles de un error (por ejemplo, de una página, de un middleware, etc.) para mostrar información a tu visitante.
La propiedad error
puede ser de cualquier tipo de datos, lo que puede afectar cómo tipas o usas el valor en tu código:
Para evitar filtrar información sensible al mostrar contenido de la propiedad error
, considera evaluar el error primero y devolver contenido apropiado basado en el error lanzado. Por ejemplo, debes evitar mostrar la pila de errores ya que contiene información sobre cómo está estructurado tu código en el servidor
Páginas Parciales
Sección titulada Páginas Parciales
Agregado en:
astro@3.4.0
Las páginas parciales están destinadas para ser usadas en conjunto con una biblioteca de front-end, como htmx o Unpoly. También puedes usarlas si te sientes cómodo escribiendo JavaScript de front-end de bajo nivel. Por esta razón, son una característica avanzada.
Adicionalmente, las páginas parciales no deben ser usadas si el componente contiene estilos o scripts con alcance, ya que estos elementos serán eliminados de la salida HTML. Si necesitas estilos con alcance, es mejor usar páginas regulares, no parciales, junto con una biblioteca de front-end que sepa cómo fusionar el contenido en la cabecera.
Las páginas parciales son componentes de página ubicados dentro de src/pages/
que no están destinados a renderizar como páginas completas.
Como componentes localizados fuera de esta carpeta, estos archivos no incluyen automáticamente la declaración <!DOCTYPE html>
, ni ningún contenido de <head>
como estilos y scripts con alcance.
Sin embargo, debido a que se encuentran en el directorio especial src/pages/
, el HTML generado está disponible en una URL correspondiente a su ruta de archivo. Esto permite que una biblioteca de renderizado (por ejemplo, htmx, Stimulus, jQuery) la acceda en el cliente y cargue secciones de HTML dinámicamente en una página sin una actualización del navegador o navegación de página.
Las páginas parciales, cuando se combinan con una biblioteca de renderizado, proporcionan una alternativa a las islas de Astro y etiquetas <script>
para construir contenido dinámico en Astro.
Los archivos de página que pueden exportar un valor (por ejemplo, .astro
, .mdx
) pueden ser marcados como parciales.
Configura un archivo dentro del directorio src/pages/
para que sea una página parcial agregando la siguiente exportación:
El export const partial
debe ser identificable estáticamente. Puede tener el valor de:
- El boolean
true
. - Una variable de entorno usando import.meta.env como
import.meta.env.USE_PARTIALS
.
Uso con una biblioteca
Sección titulada Uso con una bibliotecaLas páginas parciales son usadas para actualizar dinámicamente una sección de una página usando una biblioteca como htmx.
El siguiente ejemplo muestra un atributo hx-post
establecido en la URL de una página parcial. El contenido de la página parcial se usará para actualizar el elemento HTML objetivo en esta página.
La página parcial .astro
debe existir en la ruta de archivo correspondiente e incluir una exportación que defina la página como parcial:
Consulta la documentación de htmx para más detalles sobre el uso de htmx.
Learn