Distribuisci il tuo sito Astro su GitHub Pages
Puoi usare GitHub Pages per ospitare un sito web Astro statico e prerenderizzato, direttamente da un repository su GitHub.com usando GitHub Actions.
Come distribuire
Sezione intitolata “Come distribuire”Astro mantiene un’Action GitHub Astro ufficiale per distribuire il tuo progetto su un GitHub Pages con una minima configurazione ed è il modo raccomandato per distribuire su GitHub Pages.
Segui le istruzioni che seguono per usare GitHub Action per distribuire il tuo sito Astro su GitHub Pages. Questo creerà un sito web dal tuo repository con un URL GitHub (e.g. https://<username>.github.io/<my-repo>). Una volta distribuito, puoi opzionalmente configurare un dominio personalizzato per distribuire il tuo sito su GitHub Pages con il tuo dominio preferito (e.g. https://example.com).
-
Crea un nuovo file nel tuo progetto in
.github/workflows/deploy.ymle incollaci lo YAML seguente.deploy.yml name: Deploy to GitHub Pageson:# Attiva il workflow ogni volta che fai il push del ramo `main`# Usi un nome di ramo differente? Sostituisci `main` con il nome del tuo ramopush:branches: [ main ]# Ti permette di eseguire questo workflow manualmente dalle Actions tab su GitHub.workflow_dispatch:# Permette a questo lavoro di clonare il repo e creare una distribuzione della paginapermissions:contents: readpages: writeid-token: writejobs:build:runs-on: ubuntu-lateststeps:- name: Checkout your repository using gituses: actions/checkout@v7- name: Install, build, and upload your siteuses: withastro/action@v6# with:# path: . # La posizione principale del tuo progetto Astro nel repository. (opzionale)# node-version: 24 # La versione specifica di Node che dovrebbe essere usata per compilare il tuo sito. Di default è 24. (opzionale)# package-manager: pnpm@latest # Il gestore di pacchetti che dovrebbe essere usato per installare le dipendenze e compilare il tuo sito. Rilevato automaticamente in base al tuo lockfile. (opzionale)# build-cmd: pnpm run build # Il comando da eseguire per compilare il tuo sito. Di default esegue lo script/task di compilazione del package. (opzionale)# env:# PUBLIC_POKEAPI: 'https://pokeapi.co/api/v2' # Usa le virgolette singole per il valore della variabile. (opzionale)deploy:needs: buildruns-on: ubuntu-latestenvironment:name: github-pagesurl: ${{ steps.deployment.outputs.page_url }}steps:- name: Deploy to GitHub Pagesid: deploymentuses: actions/deploy-pages@v5L’action Astro può essere configurata con input opzionali. Forniscili decommentando la linea
with:e l’input che vuoi usare.Se il tuo sito richiede delle variabili d’ambiente pubbliche, decommenta la linea
env:e aggiungile là. (Vedi la documentazione GitHub su come impostare i segreti per aggiungere variabili d’ambiente private.)L’[action] Astro ufficiale (https://github.com/withastro/action) cerca un lockfile per individuare il tuo package manager preferito (
npm,yarn,pnpm, orbun). Dovresti eseguire il commit sul tuo repository del filepackage-lock.json,yarn.lock,pnpm-lock.yaml, obun.lockbgenerato automaticamente dal tuo package manager. -
Nel tuo file di configurazione di Astro, imposta
site(EN) sull’URL GitHub del tuo sito distribuito.astro.config.mjs import { defineConfig } from 'astro/config'export default defineConfig({site: 'https://astronaut.github.io',})Il valore di
sitedeve essere uno dei seguenti:- Il seguente URL basato sul tuo username:
https://<username>.github.io - L’URL casuale autogenerato per una pagina privata dell’Organizzazione di GitHub:
https://<random-string>.pages.github.io/
- Il seguente URL basato sul tuo username:
-
In
astro.config.mjs, configura un valore perbase(EN) (solitamente richiesto).GitHub Pages pubblicherà il tuo sito web con un indirizzo che dipende sia dal tuo username che dal nome del repository (e.g.
https://<username>.github.io/<my-repo>/). Imposta un valore perbaseche specifichi il repository per il tuo sito web. È così che Astro capisce che la posizione principale del tuo sito web è/my-repo, invece del predefinito/. Puoi saltarlo se il nome del tuo repository corrisponde al pattern speciale<username>.github.io(e.g.https://github.com/username/username.github.io/)Configura
basecome il nome del repository iniziando con un barra (e.g./my-repo):astro.config.mjs import { defineConfig } from 'astro/config'export default defineConfig({site: 'https://astronaut.github.io',base: '/my-repo',})Quando questo valore è configurato, tutti i tuoi link interni di pagina devono essere preceduti dal valore di
base:<a href="/my-repo/about">About</a>Vedi di più su come configurare un valore di
base(EN). -
Su GitHub, vai sulla tab settings del tuo repository e trova la sezione Pages delle impostazioni.
-
Scegli GitHub Actions come Fonte del tuo sito.
Quando esegui il push delle modifiche sul repository del tuo progetto Astro, l’Action GitHub le distribuirà automaticamente per te al tuo URL GitHub.
Cambia il tuo URL GitHub in un dominio personalizzato
Sezione intitolata “Cambia il tuo URL GitHub in un dominio personalizzato”Una volta che il tuo progetto Astro è distribuito su GitHub pages in un URL GitHub seguendo le istruzioni precedenti, puoi configurare un dominio personalizzato. Questo significa che gli utenti possono visitare il tuo sito al tuo dominio personalizzato https://example.com invece che https://<username>.github.io.
-
Aggiungi un record
./public/CNAMEal tuo progetto.Crea il file seguente nella tua cartella
public/con una singola linea di testo che specifichi il tuo dominio personalizzato:public/CNAME sub.example.comQuesto distribuirà il tuo sito al tuo dominio personalizzato invece che
user.github.io. -
Nella tua configurazione Astro, aggiorna il valore di
sitecon il tuo dominio personalizzato. Non impostare un valore perbase, e rimuovilo se esiste:astro.config.mjs import { defineConfig } from 'astro/config'export default defineConfig({site: 'https://example.com',base: '/my-repo'}) -
Se necessario, aggiorna tutti i link interni di pagina per rimuovere il prefisso
base:<a href="/my-repo/about">About</a>
- Modello iniziale di Distribuzione di Github Pages
- Tema Starlight Flexoki (sito di produzione)
- Campioni di Colore Espressivi per il Codice (sito di produzione)
- Blocchi Markdown Starlight (sito di produzione)