160 lines
3.9 KiB
Markdown
Executable File
160 lines
3.9 KiB
Markdown
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:**
|
|
```bash
|
|
docker-compose ps
|
|
docker-compose logs wiki
|
|
```
|
|
|
|
**Lösung:**
|
|
```bash
|
|
docker-compose up -d wiki
|
|
```
|
|
|
|
### 2. Wiki-Service nicht erreichbar über Docker-Netzwerk
|
|
**Prüfung:**
|
|
```bash
|
|
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:**
|
|
```bash
|
|
docker-compose exec web printenv WIKI_SERVICE_URL
|
|
```
|
|
|
|
**Sollte sein:** `http://wiki:8080`
|
|
|
|
**Lösung:** In `docker-compose.yml` hinzufügen:
|
|
```yaml
|
|
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:**
|
|
```bash
|
|
# 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
|
|
```bash
|
|
docker-compose ps
|
|
```
|
|
Sollte zeigen:
|
|
- `web` - Status: Up
|
|
- `wiki` - Status: Up
|
|
|
|
### Schritt 2: Wiki-Service-Logs prüfen
|
|
```bash
|
|
docker-compose logs wiki --tail=50
|
|
```
|
|
Suche nach Fehlermeldungen oder "Build complete"
|
|
|
|
### Schritt 3: API-Route direkt testen
|
|
```bash
|
|
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
|
|
```bash
|
|
docker-compose exec web curl http://wiki:8080/
|
|
```
|
|
Sollte HTML zurückgeben.
|
|
|
|
### Schritt 5: Next.js Logs prüfen
|
|
```bash
|
|
docker-compose logs web --tail=100 | grep -i wiki
|
|
```
|
|
Suche nach Fehlermeldungen wie "Wiki proxy error"
|
|
|
|
## Quick Fix
|
|
|
|
Falls das Problem weiterhin besteht, versuche:
|
|
|
|
```bash
|
|
# 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**
|
|
|
|
## 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
|
|
|
|
1. ✅ API-Routes aktualisiert
|
|
2. ✅ Error-Handling verbessert
|
|
3. ⏳ Services neu starten
|
|
4. ⏳ Logs prüfen
|
|
5. ⏳ Testen auf https://doing-it.de/wiki
|
|
|