Le déploiement nécessite une chose supplémentaire par rapport à votre configuration habituelle : UNIVERSALLY_API_KEY doit être défini dans l'environnement où le build s'exécute, pas seulement là où le serveur s'exécute. L'intégration lit la clé lorsque votre configuration Astro s'exécute et la compile dans le bundle serveur. Elle n'atteint jamais le bundle client.
Avant de commencer
- Le site fonctionne localement. Voir Installer l'intégration Astro.
sitedansastro.config.mjsest votre domaine de production, donc les liens hreflang y pointent.- Vous avez la clé API de 64 caractères de Paramètres API. Voir Trouver votre clé API.
Définir la clé pour votre hôte
Votre fichier .env reste en dehors du dépôt, donc la machine de build a besoin de la variable d'une autre source. .env.production et les autres fichiers de mode ne sont pas lus.
- Node : définissez
UNIVERSALLY_API_KEYdans le shell, l'unité systemd ou l'environnement de conteneur qui exécute le build, puis démarrez le serveur produit par l'adaptateur. - Cloudflare : définissez-la comme variable d'environnement de build dans les paramètres de build de Workers ou Pages. Là où le runtime expose
waitUntil, l'intégration l'utilise, donc les rapports et les rechargements se terminent après la réponse au lieu d'être coupés. - Vercel : ajoutez-la sous les variables d'environnement du projet, pour chaque environnement que vous construisez.
- Netlify : ajoutez-la sous les variables d'environnement du site, disponibles au moment du build.
Ne mettez jamais la clé dans une variable PUBLIC_, dans un composant client, ou dans du code commité. Elle peut dépenser les mots de votre projet.
Déployer
- Définissez la variable comme ci-dessus.
- Exécutez votre build et votre déploiement habituels.
- Ouvrez une page sous un préfixe cible, tel que
https://example.com/fr/about. Le serveur Node compilé charge son catalogue lors de la première requête localisée, donc cette requête est plus lente.
Un build statique affiche N nouvelles chaînes traduites. Reconstruisez pour les inclure. lorsqu'il trouve du nouveau texte. Reconstruisez et déployez à nouveau pour expédier ces traductions.
Rendre le point de terminaison push joignable
Pour que les modifications du tableau de bord s'affichent immédiatement, https://{votre domaine}/_universally/revalidate doit accepter les requêtes POST provenant d'Internet. L'intégration y répond avant le routage Astro, vous n'ajoutez donc aucune page ni route. Si le point de terminaison est derrière un pare-feu ou une connexion, le sondage récupère toujours la modification dans revalidateSeconds. Voir Mises à jour de traduction dans Astro.
Les sites statiques n'ont pas de point de terminaison push. Reconstruisez et redéployez pour publier les modifications du tableau de bord.
Plusieurs instances
Chaque instance de serveur conserve son propre catalogue en mémoire. Une requête push atteint une instance, et les autres rattrapent en sondant. Définissez revalidateSeconds sur un délai que vous acceptez. Voir Options d'intégration Astro.
Après avoir régénéré la clé
Régénérer dans les Paramètres de l'API invalide immédiatement l'ancienne clé. Mettez à jour UNIVERSALLY_API_KEY sur votre hôte et redéployez, sinon la prochaine build échouera et le point de terminaison push d'un serveur en cours d'exécution renverra 401.
Vérifier que cela a fonctionné
- La page déployée sous
/fr/affiche le texte traduit après un rechargement. - La source de la page contient une
<link rel="alternate" hreflang>par langue, avec votre domaine de production. - Modifiez une chaîne dans l'écran Traductions, puis rechargez la page. La modification apparaît immédiatement si le push vous a atteint, ou dans les
revalidateSecondssi l'interrogation l'a détectée.