Páginas
Páginas são arquivos que vivem dentro do subdiretório src/pages/
do seu projeto Astro. Elas são responsáveis por lidar com roteamento, carregamento de dados e com o layout geral de cada página do seu website.
Tipos de arquivos suportados
Seção intitulada Tipos de arquivos suportadosAstro suporta os seguintes tipos de arquivo no diretório src/pages/
:
.astro
.md
.mdx
(com a Integração MDX instalada).html
- [
.js
/.ts
] (como endpoints)
Roteamento baseado em arquivos
Seção intitulada Roteamento baseado em arquivosAstro se beneficia de uma estratégia de roteamento chamada roteamento baseado em arquivos. Cada arquivo em seu diretório src/pages
se torna um endpoint no seu site com base no seu caminho de arquivo.
Um único arquivo também pode gerar múltiplas páginas utilizando roteamento dinâmico. Isso te permite criar páginas mesmo que seu conteúdo esteja fora do diretório especial /pages/
, como em uma coleção de conteúdo ou em um CMS.
Link entre páginas
Seção intitulada Link entre páginasEscreva elementos <a>
padrões do HTML em suas páginas Astro para fazer o link para outras páginas em seu site. Utilize como seu link o caminho URL relativo para a raiz do seu domínio, não o caminho relativo para o arquivo.
Por exemplo, para acessar https://exemplo.com/autores/sonali/
de uma outra página dentro de exemplo.com
:
Páginas Astro
Seção intitulada Páginas AstroPáginas Astro usam a extensão de arquivo .astro
e suportam as mesmas funcionalidades que componentes Astro.
Uma página deve produzir um documento HTML completo. Se não for explicitamente incluido, Astro adicionará automaticamente declarações necessárias como <!DOCTYPE html>
e o conteúdo do <head>
em qualquer componente .astro
localizado em src/pages/
. Você pode optar por não utilizar esse comportamento de maneira individual por componente, marcando-o como uma página parcial.
Para evitar repetir os mesmos elementos HTML em cada página, você pode mover elementos <head>
e <body>
comuns em seus próprios componentes de layout. Você pode usar quantos componentes de layout você quiser.
Páginas Markdown/MDX
Seção intitulada Páginas Markdown/MDXAstro também trata quaisquer arquivos Markdown (.md
) dentro de src/pages/
como páginas no seu website final. Se você tiver a Integração MDX instalada, ele também irá tratar arquivos MDX (.mdx
) da mesma forma. Eles são comumente utilizados para páginas cheias de texto como postagens de um blog e documentação.
Coleções de conteúdo de páginas Markdown ou MDX em src/content/
podem ser utilizados para gerar páginas dinamicamente.
Layouts de página são especialmente úteis para arquivos Markdown. Arquivos MMarkdown podem utilizar a propriedade especial layout
do frontmatter para especificar um componente de layout que irá envolver seu conteúdo Markdown em uma página de documento <html>...</html>
completo.
Páginas HTML
Seção intitulada Páginas HTMLArquivos com a extensão de arquivo .html
podem ser colocados dentro de src/pages/
e usados diretamente como páginas no seu site. Note que algumas funcionalidades importantes do Astro não são suportadas em Componentes HTML.
Página Customizada de Erro 404
Seção intitulada Página Customizada de Erro 404Para uma página customizada de erro 404, você pode criar um arquivo 404.astro
ou 404.md
em /src/pages
.
Isso irá construir uma página 404.html
. A maioria dos serviços de deploy irão a encontrar e utilizar.
Parciais de páginas
Seção intitulada Parciais de páginas
Adicionado em:
astro@3.4.0
É esperado que parciais de páginas sejam utilizadas em conjunto com uma biblioteca front-end, como htmx ou Unpoly. Você também pode utiliza-las caso se sinta confortável escrevendo JavaScript front-end low-level. Por conta disso elas são consideradas um recurso avançado.
Adicionalmente, parciais não devem ser usadas se o componente possuir estilos com escopo ou scripts, pois esses elementos serão removidos do HTML gerado. Se você precisa de estilos com escopo, melhor utilizar páginas padrões não-parciais em conjunto com uma biblioteca frontend que saiba mesclar conteúdos no head.
Parciais são componentes de página localizados em src/pages/
que não tem como objetivo serem renderizados em páginas completas.
Assim como componentes localizados fora dessa pasta, esses arquivos não incluem a declaração <!DOCTYPE html>
automaticamente, nem qualquer outro conteúdo do <head>
como estilos com escopo e scripts.
Porém, por estarem localizados no diretório especial src/pages/
, o código HTML gerado fica disponível em uma URL que corresponde ao caminho do arquivo. Isso permite que uma biblioteca de renderização (ex: htmx, Stimulus, jQuery) possa acessá-lo no cliente e carregar sessões do HTML dinamicamente em uma página, sem a necessecidade de um recarregamento ou navegação entre páginas.
Parciais, quando combinados com uma biblioteca de renderização, proporcionam uma alternativa às Ilhas Astro e tags <script>
na construção de conteúdo dinâmico em Astro.
Arquivos de página que podem exportar um valor (ex: .astro
, .mdx
) podem ser marcadas como parciais.
Configure um arquivo no diretório src/pages/
para ser uma parcial adicionando a seguinte exportação:
O export const partial
deve ser identificável estaticamente. Ele pode conter os seguintes valores.
- O booleano
true
. - Uma variável de ambiente usando import.meta.env como
import.meta.env.USE_PARTIALS
.
Usando com uma biblioteca
Seção intitulada Usando com uma bibliotecaParciais são usadas para atualizar dinamicamente sessões de uma página usando bibliotecas como htmx.
O exemplo a seguir mostra um atributo hx-post
direcionado para uma URL parcial. O conteúdo da página parcial será utilizado para atualizar o elemento HTML escolhido na página.
A parcial .astro
deve existir no caminho correspondente e incluir uma exportação definindo a página como uma parcial.
Visite a documentação do htmx para mais detalhes sobre como utilizá-lo.
Learn