3.9 KiB
Executable File
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/wikiohne 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.tsim 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: Upwiki- 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
- Stelle sicher, dass beide Services im docker-compose.yml sind
- Stelle sicher, dass WIKI_SERVICE_URL gesetzt ist
- Stelle sicher, dass die API-Routes im Build enthalten sind
- Prüfe die Next.js Build-Logs auf Warnungen
Alternative: Direkter Link (Fallback)
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
- ✅ API-Routes aktualisiert
- ✅ Error-Handling verbessert
- ⏳ Services neu starten
- ⏳ Logs prüfen
- ⏳ Testen auf https://doing-it.de/wiki