Seiten
Seiten sind ein spezieller Typ von Astro-Komponenten, die sich im Unterverzeichnis src/pages/ befinden. Sie sind verantwortlich für das Routing, das Laden von Daten und das gesamte Seitenlayout für jede HTML-Seite in deiner Website.
Dateibasiertes Routing
Abschnitt betitelt Dateibasiertes RoutingAstro nutzt eine Routing-Strategie, die dateibasiertes Routing genannt wird. Jede .astro-Datei im src/pages-Verzeichnis wird basierend auf ihrem Dateipfad zu einer Seite oder zu einem Endpunkt auf deiner Website.
Du kannst standardmäßige <a>-HTML-Elemente in deiner Komponentenvorlage verwenden, um Seiten untereinander zu verlinken.
📚 Lies mehr über Routing in Astro.
Seiten-HTML
Abschnitt betitelt Seiten-HTMLAstro-Seiten müssen eine vollständige <html>...</html>-Seitenantwort zurückgeben, einschließlich <head> und <body>. (<!doctype html> ist optional und wird automatisch hinzugefügt.)
<html> <head> <title>Meine Homepage</title> </head> <body> <h1>Willkommen auf meiner Website!</h1> </body></html>Nutzung von Seitenlayouts
Abschnitt betitelt Nutzung von SeitenlayoutsUm zu vermeiden, dass sich dieselben HTML-Elemente auf jeder Seite wiederholen, kannst du gemeinsame <head>- und <body>-Elemente in ihre eigenen Layout-Komponenten verschieben. Du kannst so viele oder so wenige Layout-Komponenten verwenden, wie du möchtest.
---import MeinLayout from '../layouts/MeinLayout.astro';---<MeinLayout> <p>Mein Seiteninhalt, umgeben von einem Layout!</p></MeinLayout>📚 Lies mehr über Layout-Komponenten in Astro.
Markdown-Seiten
Abschnitt betitelt Markdown-SeitenAstro behandelt auch alle Markdown-Dateien (.md) innerhalb von /src/pages/ als Seiten in deiner finalen Website. Diese werden üblicherweise für textlastige Seiten wie Blogbeiträge und Dokumentationen verwendet.
Seitenlayouts sind besonders nützlich für Markdown-Dateien. Markdown-Dateien können die spezielle Frontmatter-Eigenschaft layout verwenden, um eine Layout-Komponente zu spezifizieren, welche den Markdown-Inhalt in ein vollständiges <html>...</html>-Dokument einbettet.
---layout: '../layouts/MeinLayout.astro'title: 'Meine Markdown-Seite'---# Titel
Das hier ist meine Seite, geschrieben in **Markdown.**📚 Lies mehr über Markdown in Astro.
Nicht-HTML-Seiten
Abschnitt betitelt Nicht-HTML-SeitenNicht-HTML-Seiten, z. B. .json, .xml oder sogar Bilder, können über API-Routen erstellt werden, die gemeinhin als Dateirouten bezeichnet werden.
Dateirouten sind Skriptdateien, die mit der Erweiterung .js oder .ts enden und sich im Verzeichnis src/pages/ befinden.
Erstellte Dateinamen und Erweiterungen basieren auf den Namen der Quelldateien. Die Datei src/pages/data.json.ts wird z. B. so erstellt, dass sie der /data.json-Route in deinem endgültigen Build entspricht.
Bei SSR (server-side rendering) spielt die Erweiterung keine Rolle und kann weggelassen werden, da zum Zeitpunkt der Erstellung keine Dateien erzeugt werden. Stattdessen erzeugt Astro eine einzige Serverdatei.
// Ausgabe: /builtwith.json
// Dateirouten exportieren eine get()-Funktion, die aufgerufen wird, um die Datei zu erzeugen.// Gib ein Objekt mit `body` zurück, um den Inhalt der Datei in deinem endgültigen Build zu speichern.export async function get() { return { body: JSON.stringify({ name: 'Astro', url: 'https://astro.build/', }), };}API-Routen erhalten ein APIContext-Objekt, das Parameter (params) und eine Anfrage (request) enthält:
import type { APIContext } from 'astro';
export async function get({ params, request }: APIContext) { return { body: JSON.stringify({ path: new URL(request.url).pathname }) };}Du kannst deine API-Routenfunktionen auch unter Verwendung des Typs APIRoute schreiben. Dadurch erhältst du bessere Fehlermeldungen, wenn deine API-Route den falschen Typ zurückgibt:
import type { APIRoute } from 'astro';
export const get: APIRoute = ({ params, request }) => { return { body: JSON.stringify({ path: new URL(request.url).pathname }) };};Benutzerdefinierte 404-Fehlerseite
Abschnitt betitelt Benutzerdefinierte 404-FehlerseiteFür eine benutzerdefinierte 404-Fehlerseite kannst du eine Datei namens 404.astro oder 404.md in /src/pages erstellen.
Aus dieser wird die Seite 404.html erstellt. Die meisten Hosting-Anbieter werden sie finden und verwenden.