Veröffentliche deine Astro-Website bei GitHub Pages
Du kannst GitHub Pages verwenden, um eine Astro-Website direkt von einem Repository auf GitHub.com zu hosten.
Wie du sie veröffentlichst
Abschnitt betitelt Wie du sie veröffentlichstDu kannst eine Astro-Website bei GitHub Pages veröffentlichen, indem du GitHub Actions verwendest und so deine Website automatisch erzeugst und veröffentlichst. Um dies zu erreichen, muss dein Quelltext auf GitHub gehosted sein.
Astro pflegt die offizielle withastro/action
, welche dein Projekt mit minimaler Konfiguration veröffentlicht. Folge den unten angeführten Anweisungen, um deine Astro-Website bei GitHub Pages zu veröffentlichen, und lies die README-Datei des Pakets, falls du mehr Informationen benötigst.
Astro für GitHub Pages konfigurieren
Abschnitt betitelt Astro für GitHub Pages konfigurierenVeröffentlichung auf einer github.io
UR
Abschnitt betitelt Veröffentlichung auf einer github.io URSetze die Optionen site
(EN) und base
(EN) in astro.config.mjs
.
import { defineConfig } from 'astro/config'
export default defineConfig({ site: 'https://astronaut.github.io', base: 'my-repo',})
Der Wert für site
muss einer der folgenden sein:
- Die folgende URL basiert auf deinem Benutzernamen:
https://<Benutzername>.github.io
- Die zufällige URL, die automatisch für eine [private Seite der GitHub-Organisation] (https://docs.github.com/en/enterprise-cloud@latest/pages/getting-started-with-github-pages/changing-the-visibility-of-your-github-pages-site) generiert wird:
https://<zufällige-Zeichenkette>.pages.github.io/
Ein Wert für base
kann erforderlich sein, damit Astro deinen Repository-Namen (z.B. /my-repo
) als Stammverzeichnis deiner Website behandelt.
Setze keinen base
-Parameter, wenn:
- Deine Seite wird aus dem Stammordner ausgeliefert.
- Dein Repository befindet sich unter
https://github.com/<BENUTZERNAME>/<BENUTZERNAME>.github.io
.
Der Wert für base
sollte der Name deines Repositorys sein, der mit einem Schrägstrich beginnt, zum Beispiel /my-blog
. Damit Astro weiß, dass das Stammverzeichnis deiner Website /my-repo
ist und nicht der Standardwert /
.
Wenn dieser Wert konfiguriert ist, muss allen deinen internen Seitenlinks dein „Basis“-Wert vorangestellt werden:
<a href="/my-repo/about">Über mich</a>
Siehe mehr über einen base
-Wert konfigurieren (EN).
GitHub-Seiten mit einer eigenen Domain verwenden
Abschnitt betitelt GitHub-Seiten mit einer eigenen Domain verwendenDu kannst eine benutzerdefinierte Domain einrichten, indem du die folgende Datei ./public/CNAME
zu deinem Projekt hinzufügst:
sub.mydomain.com
Dadurch wird deine Website unter deiner benutzerdefinierten Domain statt unter user.github.io
bereitgestellt. Vergiss nicht, auch DNS für deinen Domainanbieter zu konfigurieren.
Um Astro für die Verwendung von GitHub-Seiten mit einer benutzerdefinierten Domain zu konfigurieren, gibst du deine Domain als Wert für site
an. Setze keinen Wert für base
:
import { defineConfig } from 'astro/config'
export default defineConfig({ site: 'https://example.com',})
Konfiguriere eine GitHub-Aktion
Abschnitt betitelt Konfiguriere eine GitHub-Aktion-
Erstelle eine neue Datei in deinem Projekt unter
.github/workflows/deploy.yml
und füge die folgende YAML ein.deploy.yml name: Deploy to GitHub Pageson:# Löse den Workflow jedes Mal aus, wenn du zum `main`-Branch pushst# Du verwendest einen anderen Branchnamen? Ersetze `main` durch den Namen deines Branchespush:branches: [ main ]# Ermöglicht es dir, diesen Workflow manuell über die Registerkarte „Actions“ auf GitHub auszuführen.workflow_dispatch:# Erlaube diesem Job, das Repo zu klonen und eine Seitenbereitstellung zu erstellenpermissions:contents: readpages: writeid-token: writejobs:build:runs-on: ubuntu-lateststeps:- name: Checkout your repository using gituses: actions/checkout@v4- name: Install, build, and upload your siteuses: withastro/action@v3# with:# path: . # Das Stammverzeichnis deines Astro-Projekts innerhalb des Repositorys. (optional)# node-version: 20 # Die spezifische Version von Node, die für die Erstellung deiner Website verwendet werden soll. Der Standardwert ist 20. (optional)# package-manager: pnpm@latest # Der Node-Paketmanager, der für die Installation von Abhängigkeiten und die Erstellung deiner Website verwendet werden soll. Wird automatisch anhand deines Lockfiles ermittelt. (optional)deploy:needs: buildruns-on: ubuntu-latestenvironment:name: github-pagesurl: ${{ steps.deployment.outputs.page_url }}steps:- name: Deploy to GitHub Pagesid: deploymentuses: actions/deploy-pages@v4Die Astro-Aktion benötigt ein paar optionale Eingaben. Diese kannst du angeben, indem du die Zeile
with:
auskommentierst und die gewünschte Eingabe angibst.Die offizielle Astro-Action scannt nach einer Lock-Datei, um deinen bevorzugten Paketmanager (
npm
,yarn
,pnpm
oderbun
) zu erkennen. Du solltest die von deinem Paketmanager automatisch generierte Dateipackage-lock.json
,yarn.lock
,pnpm-lock.yaml
oderbun.lockb
in dein Repository übertragen. -
Gehe auf GitHub auf den Reiter Einstellungen deines Repositorys und suche den Abschnitt Seiten der Einstellungen.
-
Wähle GitHub Actions als Quelle für deine Seite.
-
Übertrage die neue Workflow-Datei und pushe sie auf GitHub.
Deine Website sollte jetzt veröffentlicht werden! Wenn du Änderungen am Repository deines Astro-Projekts vornimmst, wird die GitHub-Aktion sie automatisch für dich veröffentlichen.