Files
doing-it-website/WIKI-404-FIX.md
2025-11-29 10:30:33 +01:00

3.9 KiB
Executable File

Wiki 404 Error - Fix Dokumentation

Problem

Beim Klick auf den Wiki-Link in der Navbar erscheint ein 404-Fehler auf https://doing-it.de/wiki

Implementierte Fixes

1. Root-API-Route hinzugefügt

  • Datei: app/api/wiki/route.ts
  • Behandelt direkte Aufrufe zu /api/wiki ohne weiteren Pfad
  • Wichtig für das iframe, das /api/wiki/ lädt

2. Verbessertes Error-Handling

  • Logging für alle Requests
  • 10 Sekunden Timeout für Wiki-Service-Requests
  • Bessere Fehlermeldungen mit Status-Codes

3. URL-Handling verbessert

  • Keine doppelten Slashes mehr
  • Korrekte Query-Parameter-Weiterleitung

4. Next.js 15 Compatibility

  • Async params in Catch-All-Route
  • Verbesserte Type-Sicherheit

5. Fehleranzeige in Wiki-Seite

  • Zeigt Fehlermeldung, falls Wiki nicht lädt
  • Button zum Neuladen der Seite

Mögliche Ursachen des 404-Fehlers

1. Wiki-Service läuft nicht

Prüfung:

docker-compose ps
docker-compose logs wiki

Lösung:

docker-compose up -d wiki

2. Wiki-Service nicht erreichbar über Docker-Netzwerk

Prüfung:

docker-compose exec web curl http://wiki:8080/

Lösung:

  • Stelle sicher, dass beide Services im gleichen Docker-Netzwerk sind
  • Prüfe docker-compose.yml - beide Services sollten dort definiert sein

3. Environment-Variable falsch gesetzt

Prüfung:

docker-compose exec web printenv WIKI_SERVICE_URL

Sollte sein: http://wiki:8080

Lösung: In docker-compose.yml hinzufügen:

web:
  environment:
    - WIKI_SERVICE_URL=http://wiki:8080

4. API-Route nicht deployed

Prüfung:

  • Prüfe, ob app/api/wiki/route.ts im Deployment vorhanden ist
  • Prüfe Next.js Build-Logs

Lösung:

  • Stelle sicher, dass die Datei committed ist
  • Rebuild des Next.js Images: docker-compose build web

5. Production Dockerfile verwendet

Prüfung:

# Prüfe, welches Dockerfile verwendet wird
cat docker-compose.yml | grep dockerfile

Lösung:

  • Stelle sicher, dass in Produktion auch die richtige Dockerfile verwendet wird
  • Oder passe die Production-Dockerfile an

Debugging-Schritte

Schritt 1: Services prüfen

docker-compose ps

Sollte zeigen:

  • web - Status: Up
  • wiki - Status: Up

Schritt 2: Wiki-Service-Logs prüfen

docker-compose logs wiki --tail=50

Suche nach Fehlermeldungen oder "Build complete"

Schritt 3: API-Route direkt testen

curl https://doing-it.de/api/wiki/

Oder im Browser: https://doing-it.de/api/wiki/

Sollte HTML zurückgeben, nicht 404.

Schritt 4: Internen Service-Zugriff testen

docker-compose exec web curl http://wiki:8080/

Sollte HTML zurückgeben.

Schritt 5: Next.js Logs prüfen

docker-compose logs web --tail=100 | grep -i wiki

Suche nach Fehlermeldungen wie "Wiki proxy error"

Quick Fix

Falls das Problem weiterhin besteht, versuche:

# 1. Alle Services neu starten
docker-compose down
docker-compose up -d --build

# 2. Logs beobachten
docker-compose logs -f

# 3. Prüfen ob beide Services laufen
docker-compose ps

Wichtig für Produktion

  1. Stelle sicher, dass beide Services im docker-compose.yml sind
  2. Stelle sicher, dass WIKI_SERVICE_URL gesetzt ist
  3. Stelle sicher, dass die API-Routes im Build enthalten sind
  4. Prüfe die Next.js Build-Logs auf Warnungen

Falls das iframe weiterhin Probleme macht, kann die Wiki-Seite so geändert werden, dass sie direkt auf /api/wiki verlinkt statt ein iframe zu verwenden. Dies erfordert eine Änderung in app/wiki/page.tsx.

Nächste Schritte nach Deployment

  1. API-Routes aktualisiert
  2. Error-Handling verbessert
  3. Services neu starten
  4. Logs prüfen
  5. Testen auf https://doing-it.de/wiki