Seiten
Seiten sind Dateien, die sich im Unterverzeichnis src/pages/
deines Astro-Projekts befinden. Sie sind verantwortlich für das Routing, das Laden von Daten und das gesamte Seitenlayout für jede HTML-Seite in deiner Website.
Unterstützte Seitendateien
Abschnitt betitelt Unterstützte SeitendateienAstro unterstützt die folgenden Dateitypen im Verzeichnis src/pages/
:
.astro
.md
.mdx
(mit der MDX-Integration installiert (EN)).html
.js
/.ts
(als Endpunkte)
Dateibasiertes Routing
Abschnitt betitelt Dateibasiertes RoutingAstro nutzt eine Routing-Strategie, die dateibasiertes Routing genannt wird. Jede Datei in deinem src/pages/
-Verzeichnis wird anhand ihres Dateipfads zu einem Endpunkt auf deiner Website.
Mit dynamischen Routing kann eine einzelne Datei auch mehrere Seiten erzeugen. So kannst du auch dann Seiten erstellen, wenn sich deine Inhalte außerhalb des speziellen /pages/
-Verzeichnisses befinden, z. B. in einer Inhaltssammlung (EN) oder einem CMS.
Link zwischen Seiten
Abschnitt betitelt Link zwischen SeitenSchreibe Standard-HTML <a>
-Elemente in deine Astro-Seiten, um Links zu anderen Seiten auf deiner Website zu erstellen. Verwende einen URL-Pfad relativ zu deiner Root-Domain als Link, nicht einen relativen Dateipfad.
Um zum Beispiel von einer beliebigen Seite auf example.com
auf https://example.com/authors/sonali/
zu verlinken:
Astro-Seiten
Abschnitt betitelt Astro-SeitenAstro-Seiten verwenden die Dateierweiterung .astro
und unterstützen die gleichen Funktionen wie Astro-Komponenten.
Eine Seite muss ein vollständiges HTML-Dokument erzeugen. Wenn nicht explizit angegeben, fügt Astro die notwendige <!DOCTYPE html>
-Deklaration und den <head>
-Inhalt zu jeder .astro
-Komponente, die sich innerhalb von src/pages/
befindet, hinzu. Du kannst dieses Verhalten für jede einzelne Komponente deaktivieren, indem du sie als partielle Seite markierst.
Um 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.
Markdown/MDX-Seiten
Abschnitt betitelt Markdown/MDX-SeitenAstro behandelt auch alle Markdown-Dateien (.md
) innerhalb von /src/pages/
als Seiten in deiner finalen Website. Wenn du die MDX-Integration installiert hast (EN), werden MDX-Dateien (.mdx
) ebenfalls so behandelt.
Ziehe in Erwägung, Inhaltssammlungen (EN) anstelle von Seiten für Verzeichnisse verwandter Markdown-Dateien zu erstellen, die eine ähnliche Struktur haben, wie z. B. Blogbeiträge oder Produktartikel.
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.
HTML-Seiten
Abschnitt betitelt HTML-SeitenDateien mit der Dateierweiterung .html
können im Verzeichnis src/pages/
abgelegt und direkt als Seiten auf deiner Website verwendet werden. Beachte, dass einige wichtige Astro-Funktionen in HTML-Komponenten nicht unterstützt werden.
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.
Benutzerdefinierte 500-Fehlerseite
Abschnitt betitelt Benutzerdefinierte 500-FehlerseiteUm eine benutzerdefinierte 500-Fehlerseite für Seiten anzuzeigen, die bei Bedarf gerendert wird, erstelle die Datei src/pages/500.astro
. Diese benutzerdefinierte Seite ist nicht für vorgerenderte Seiten verfügbar und kann nicht vorgerendert werden.
Wenn beim Rendern dieser Seite ein Fehler auftritt, wird deinem Besucher die standardmäßige 500-Fehlerseite deines Hosts angezeigt.
Hinzugefügt in:
astro@4.10.3
Wenn du während der Entwicklung eine 500.astro
-Datei hast, wird der Fehler, der zur Laufzeit auftritt, in deinem Terminal protokolliert und nicht im Fehler-Overlay angezeigt.
Hinzugefügt in:
astro@4.11.0
Die Seite src/pages/500.astro
ist eine spezielle Seite, die bei jedem Fehler, der während des Renderings auftritt, automatisch eine error
-Eigenschaft erhält. So kannst du die Details eines Fehlers (z. B. von einer Seite, von der Middleware usw.) verwenden, um deinem Besucher Informationen anzuzeigen.
Der Datentyp der Fehler-Eigenschaft kann beliebig sein, was sich darauf auswirken kann, wie du den Wert in deinem Code einträgst oder verwendest:
Um zu vermeiden, dass sensible Informationen beim Anzeigen von Inhalten aus der Eigenschaft error
durchsickern, solltest du zuerst den Fehler auswerten und dann den entsprechenden Inhalt basierend auf dem Fehler zurückgeben. Du solltest zum Beispiel vermeiden, die gesamte Ursprungsverfolgung des Fehlers anzuzeigen, da sie Informationen darüber enthält, wie dein Code auf dem Server strukturiert ist.
Partielle Seiten
Abschnitt betitelt Partielle Seiten
Hinzugefügt in:
astro@3.4.0
Partielle Seiten sind für die Verwendung in Verbindung mit einer Front-End-Bibliothek wie htmx oder Unpoly gedacht. Du kannst sie auch verwenden, wenn du mit dem Schreiben von Low-Level-JavaScript im Frontend vertraut bist. Aus diesem Grund sind sie ein fortgeschrittenes Feature.
Außerdem sollten partielle Seiten nicht verwendet werden, wenn die Komponente Scoped Styles (auf Komponenten begrenzte lokale CSS-Stile) oder Skripte enthält, da diese Elemente aus der HTML-Ausgabe entfernt werden. Wenn du Scoped Styles brauchst, ist es besser, reguläre, nicht-partielle Seiten zusammen mit einer Frontend-Bibliothek zu verwenden, die weiß, wie man den Inhalt in den Head einfügt.
Partielle Seiten sind Seitenkomponenten, die sich in src/pages/
befinden und nicht als vollständige Seiten dargestellt werden sollen.
Wie Komponenten, die sich außerhalb dieses Ordners befinden, enthalten diese Dateien nicht automatisch die <!DOCTYPE html>
-Deklaration und auch keinen <head>
-Inhalt, wie z. B. skalierte Stile und Skripte.
Da sie sich jedoch in dem speziellen Verzeichnis src/pages/
befinden, ist das erzeugte HTML unter einer URL verfügbar, die dem Dateipfad entspricht. So kann eine Rendering-Bibliothek (z. B. htmx, Stimulus, jQuery) auf dem Client darauf zugreifen und HTML-Abschnitte dynamisch auf eine Seite laden, ohne dass der Browser aktualisiert werden muss oder eine Seitennavigation erforderlich ist.
Partielle Seiten bieten in Kombination mit einer Rendering-Bibliothek eine Alternative zu Astro-Inseln und <script>
-Tags, um dynamische Inhalte in Astro zu erstellen.
Seitendateien, die einen Wert exportieren können (z.B. .astro
, .mdx
), können als partielle Seiten markiert werden.
Konfiguriere eine Datei im Verzeichnis src/pages/
als partielle Seite, indem du den folgenden Export hinzufügst:
Die export const partial
muss statisch identifizierbar sein. Sie kann folgende Werte annehmen:
- Den booleschen Wert
true
. - Eine Umgebungsvariable mit import.meta.env wie
import.meta.env.USE_PARTIALS
.
Verwendung mit einer Bibliothek
Abschnitt betitelt Verwendung mit einer BibliothekPartielle Seiten werden verwendet, um einen Abschnitt einer Seite mit einer Bibliothek wie htmx dynamisch zu aktualisieren.
Das folgende Beispiel zeigt ein hx-post
-Attribut, das auf die URL einer partiellen Seite gesetzt ist. Der Inhalt der partiellen Seite wird verwendet, um das gewünschte HTML-Element auf dieser Seite zu aktualisieren.
Die .astro
-partielle Seite muss unter dem entsprechenden Dateipfad existieren und einen Export enthalten, der die Seite als partielle Seite definiert:
In der htmx-Dokumentation findest du weitere Details zur Verwendung von htmx.
Learn