La distribuzione richiede una cosa in più rispetto alla configurazione abituale: UNIVERSALLY_API_KEY deve essere impostata nell'ambiente in cui viene eseguita la build, non solo dove viene eseguito il server. L'integrazione legge la chiave quando viene eseguita la configurazione di Astro e la compila nel bundle del server. Non raggiunge mai il bundle del client.
Prima di iniziare
- Il sito funziona localmente. Vedi Installa l'integrazione Astro.
siteinastro.config.mjsè il tuo dominio di produzione, quindi i link hreflang puntano ad esso.- Hai la chiave API di 64 caratteri da Impostazioni API. Vedi Trova la tua chiave API.
Imposta la chiave per il tuo host
Il tuo file .env rimane fuori dal repository, quindi la macchina di build ha bisogno della variabile da qualche altra parte. .env.production e altri file di modalità non vengono letti.
- Node: imposta
UNIVERSALLY_API_KEYnella shell, nell'unità systemd o nell'ambiente container che esegue la build, quindi avvia il server prodotto dall'adattatore. - Cloudflare: impostala come variabile d'ambiente di build nelle impostazioni di build di Workers o Pages. Dove il runtime espone
waitUntil, l'integrazione la utilizza, quindi report e ricaricamenti terminano dopo la risposta invece di essere interrotti. - Vercel: aggiungila nelle variabili d'ambiente del progetto, per ogni ambiente in cui esegui la build.
- Netlify: aggiungila nelle variabili d'ambiente del sito, disponibili al momento della build.
Non inserire mai la chiave in una variabile PUBLIC_, in un componente client o nel codice committato. Può spendere le parole del tuo progetto.
Distribuisci
- Imposta la variabile come sopra.
- Esegui la tua solita build e distribuzione.
- Apri una pagina sotto un prefisso di destinazione, come
https://example.com/fr/about. Il server Node compilato carica il suo catalogo alla prima richiesta localizzata, quindi quella richiesta è più lenta.
Una build statica stampa N nuove stringhe tradotte. Ricompila per includerle. quando trova nuovo testo. Ricompila e ridistribuisci per spedire quelle traduzioni.
Rendi raggiungibile l'endpoint di push
Affinché le modifiche della dashboard vengano visualizzate immediatamente, https://{il tuo dominio}/_universally/revalidate deve accettare richieste POST da Internet. L'integrazione risponde prima del routing di Astro, quindi non aggiungi alcuna pagina o route. Se l'endpoint è dietro un firewall o un login, il polling rileva comunque la modifica entro revalidateSeconds. Vedi Aggiornamenti delle traduzioni in Astro.
I siti statici non hanno un endpoint di push. Ricompila e ridistribuisci per pubblicare le modifiche della dashboard.
Istanze multiple
Ogni istanza del server mantiene il proprio catalogo in memoria. Un push raggiunge un'istanza e le altre si aggiornano tramite polling. Imposta revalidateSeconds su un ritardo che accetti. Vedi Opzioni di integrazione Astro.
Dopo aver rigenerato la chiave
Rigenera nelle Impostazioni API invalida immediatamente la vecchia chiave. Aggiorna UNIVERSALLY_API_KEY sul tuo host e ridistribuisci, altrimenti la prossima build fallirà e l'endpoint push di un server in esecuzione restituirà 401.
Verifica che abbia funzionato
- La pagina distribuita sotto
/fr/mostra il testo tradotto dopo un ricaricamento. - Il codice sorgente della pagina contiene un
<link rel="alternate" hreflang>per lingua, con il tuo dominio di produzione. - Modifica una stringa nella schermata Traduzioni, quindi ricarica la pagina. La modifica appare immediatamente se il push ti ha raggiunto, o entro
revalidateSecondsse il polling l'ha rilevata.