S

super-dev — full-stack

@super-dev.app · Full-stack · ★ ouvert aux missions
12,8k abonnés·47 vidéos·Actif depuis 2017

Développeur full-stack .NET / Angular avec une casquette DevOps sur Azure Cloud. Aussi à l'aise sur Flutter + Firebase. Je construis des produits, je les déploie, je les surveille.

Retour aux articles
AZURE
AZURE

Déployer un SPA Angular prerendu (SSG) sur Azure Static Web Apps

Article 1 sur 6 — Azure DevOps de zéro
Prerender, Container Apps, secrets, CI/CD, Docker, observabilité : livrer sur Azure sans serveur ni douleur.

Un SPA Angular classique envoie une page blanche aux crawlers : tant que le JS n'a pas tourné, il n'y a rien à indexer. La génération de site statique (SSG) règle ça en prérendant chaque route en HTML au build. Couplée à Azure Static Web Apps , on obtient un site sans serveur, instantané, et parfaitement référencé.

Prerender natif, sans serveur Node

Depuis @angular/ssr , le mode outputMode: 'static' prérend toutes les routes à la compilation et n'émet que des fichiers statiques — aucun serveur Node à héberger. C'est ce qui rend le déploiement sur Azure SWA trivial : on pousse un dossier browser/ .

YAML
1# angular.json — extrait de la cible de build
2"outputMode": "static",
3"prerender": true,
4"ssr": {
5 "entry": "src/server.ts"
6}

Le piège des routes paramétrées

Une route parente :lang avec un redirectTo fonctionnel casse le prérendu : le <router-outlet> ressort vide. La parade est d'exposer deux arbres statiques explicites ( /fr et /en ) plutôt qu'un paramètre. La langue devient un préfixe d'URL, pas un param.

Configurer Azure Static Web Apps

Azure SWA lit un fichier staticwebapp.config.json à la racine du déploiement. Le fallback SPA y est essentiel pour que le routing client prenne le relais sur les routes non prérendues, sans renvoyer un 404.

YAML
1# staticwebapp.config.json (équivalent)
2navigationFallback:
3 rewrite: /index.html
4 exclude:
5 - /assets/*
6 - /*.{css,js,png,svg}
7mimeTypes:
8 .json: application/json

SEO complet à la compilation

Un script post-build génère sitemap.xml , robots.txt et llms.txt , pendant que le SeoService pose les <title> , balises Open Graph , canonical , hreflang et le JSON-LD BlogPosting route par route. Comme tout est dans le HTML prérendu, crawlers et IA récupèrent le contenu sans exécuter une ligne de JS . La doc Azure détaille la config dans le guide Static Web Apps configuration .

Le SSG n'est pas qu'une optimisation SEO : c'est un site qui s'affiche avant même que le JS soit téléchargé. Le time-to-content devient indépendant de la connexion du visiteur.
super-dev — portfolio.app
// Continuer dans AZURE
Déployer une API .NET sur Azure Container Apps
8 min • 2,4k lectures
Secrets zéro-config : Key Vault + Managed Identity
7 min • 1,7k lectures