Commit Graph

3 Commits

Author SHA1 Message Date
Jörg Lohrer c3be5c167d fix(spa): clientseitiger 404 nach hydration behoben (D)
Etappe 5 hatte einen bug: nach dem prerendered HTML hat svelteKit beim
ersten clientseitigen navigations-tick nochmal load() aufgerufen, das
hat im browser-pfad pauschal 404 geworfen. Sichtbarer effekt: seite
zeigt kurz den korrekten inhalt, springt dann auf "Post nicht
gefunden".

Fix-strategie D aus dem chat:
- snapshot/output/posts/*.json wird vor dem build nach
  app/static/snapshot-data/posts/ kopiert (deploy-skript + workflow)
- +page.ts im browser-pfad fetcht dann /snapshot-data/posts/<slug>.json
- 404 nur noch wenn die JSON wirklich nicht existiert (= slug nicht
  im snapshot)

Damit funktionieren sowohl hard-reload (svelteKit hydriert die
prerendered page-data direkt) als auch clientseitige navigation
zwischen detail-seiten.

app/static/snapshot-data/ ist gitignored — wird zur build-zeit aus
snapshot/output/ generiert.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 11:36:44 +02:00
Jörg Lohrer f39b4ad62f fix(ci): FTP-secrets vor URL-bau trimmen
curl hat den ersten upload mit "URL using bad/illegal format"
abgebrochen. Wahrscheinliche ursache: trailing newline in einem
der FTP-secrets (passiert beim copy-paste in die GitHub-secrets-UI,
wenn der quell-string ein \n am ende hatte).

tr -d '\r\n' entfernt CR/LF aus allen vier FTP-vars, bevor sie in
die URL gehen.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 11:03:14 +02:00
Jörg Lohrer 0075160370 ci: manueller build+deploy-workflow fuer SPA
Bewusst kein auto-trigger: kontrolle bleibt beim menschen, wer wann
auf welche subdomain deployt. Aufruf via "Actions" → "Build + Deploy
SPA" → "Run workflow", target ist 'svelte' (default), 'staging' oder
'prod'. 1:1 abbild der lokalen scripts/deploy-svelte.sh-logik:

1. snapshot ziehen (Deno)
2. SvelteKit bauen (Node)
3. __SITE_URL__-substitution
4. __HTML_LANG__-substitution pro detail-HTML aus snapshot/output
5. FTPS-upload pro datei via curl --tls-max 1.2 (All-Inkl-friendly)
6. live-check via curl

Voraussetzung: SVELTE_FTP_*, STAGING_FTP_* als github-secrets hinterlegen.
AUTHOR_PUBKEY_HEX + BOOTSTRAP_RELAY existieren bereits aus publish-pipeline.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 10:13:58 +02:00