S

super-dev — full-stack

@super-dev.app · Full-stack · ★ offen für Aufträge
12,8k Abonnenten·47 Videos·Aktiv seit 2017

Full-Stack-Entwickler .NET / Angular mit DevOps-Erfahrung auf Azure Cloud. Auch zu Hause mit Flutter + Firebase. Ich entwickle Produkte, deploye sie und überwache sie.

Zurück zu den Artikeln
AZURE
AZURE

Ein vorgerendertes Angular-SPA (SSG) auf Azure Static Web Apps deployen

Artikel 1 von 6 — Azure DevOps von Grund auf
Prerender, Container Apps, Secrets, CI/CD, Docker, Observability: auf Azure deployen, ohne Server und ohne Schmerzen.

Eine klassische Angular-SPA liefert Crawlern eine leere Seite: Solange das JS nicht ausgeführt wurde, gibt es nichts zu indexieren. Die statische Site-Generierung (SSG) löst das, indem sie jede Route beim Build zu HTML vorrendert. In Kombination mit Azure Static Web Apps erhält man eine serverlose, sofort verfügbare und perfekt indexierte Website.

Natives Prerendering, ohne Node-Server

Mit @angular/ssr rendert der Modus outputMode: 'static' alle Routen beim Kompilieren vor und gibt ausschließlich statische Dateien aus — kein Node-Server muss gehostet werden. Das macht das Deployment auf Azure SWA trivial: Man pusht lediglich einen browser/ -Ordner.

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

Die Falle der parametrisierten Routen

Eine übergeordnete Route :lang mit einem funktionalen redirectTo zerstört das Prerendering: der <router-outlet> wird leer ausgegeben. Die Lösung besteht darin, zwei explizite statische Bäume ( /fr und /en ) statt eines Parameters zu verwenden. Die Sprache wird zu einem URL-Präfix, kein Parameter.

Azure Static Web Apps konfigurieren

Azure SWA liest eine staticwebapp.config.json -Datei im Stammverzeichnis des Deployments. Der SPA-Fallback ist dort unverzichtbar, damit das Client-Routing bei nicht vorgerenderten Routen einspringt, ohne einen 404-Fehler zurückzugeben.

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

Vollständiges SEO zur Kompilierzeit

Ein Post-Build-Skript generiert sitemap.xml , robots.txt und llms.txt , während der SeoService die <title> -Tags, Open Graph -Tags, canonical , hreflang und das JSON-LD BlogPosting Route für Route setzt. Da alles im vorgerenderten HTML enthalten ist, können Crawler und KI den Inhalt abrufen, ohne eine einzige Zeile JS auszuführen . Die Azure-Dokumentation erläutert die Konfiguration im Leitfaden Static Web Apps configuration .

SSG ist nicht nur eine SEO-Optimierung: Es ist eine Website, die sich anzeigt, noch bevor JS heruntergeladen wurde. Die Time-to-Content wird unabhängig von der Verbindung des Besuchers.
super-dev — portfolio.app
// Weiter in AZURE
Eine .NET-API auf Azure Container Apps deployen
8 min • 2,4k Aufrufe
Secrets ohne Konfiguration: Key Vault + Managed Identity
7 min • 1,7k Aufrufe