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

82 lines
2.1 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
## Mögliche Ursachen
1. **API-Route nicht gefunden**: Die API-Route `/api/wiki/*` wird möglicherweise nicht korrekt deployed
2. **Wiki-Service nicht erreichbar**: Der Wiki-Service läuft möglicherweise nicht oder ist nicht über das Docker-Netzwerk erreichbar
3. **Next.js 14/15 Route-Handling**: Probleme mit async params in Next.js 14+
## Implementierte Fixes
### 1. Root-Route für `/api/wiki` hinzugefügt
- Neue Datei: `app/api/wiki/route.ts`
- Behandelt direkte Aufrufe zu `/api/wiki` ohne Pfad
### 2. Verbessertes Error-Handling
- Bessere Fehlermeldungen in den API-Routes
- Logging für Debugging
- Fehleranzeige in der Wiki-Seite, falls das Wiki nicht lädt
### 3. Next.js 15 Compatibility
- Async params in Catch-All-Route
- Verbesserte Type-Definitionen
### 4. Trailing Slash
- Wiki-URL verwendet jetzt `/api/wiki/` mit trailing slash
## Debugging-Schritte
### 1. Prüfen ob Wiki-Service läuft
```bash
docker-compose ps
docker-compose logs wiki
```
### 2. Prüfen ob API-Route erreichbar ist
Direkt im Browser oder mit curl:
```bash
curl https://doing-it.de/api/wiki/
```
### 3. Prüfen ob Wiki-Service intern erreichbar ist
```bash
docker-compose exec web curl http://wiki:8080/
```
### 4. Environment-Variable prüfen
Stelle sicher, dass `WIKI_SERVICE_URL` korrekt gesetzt ist:
```bash
docker-compose exec web printenv WIKI_SERVICE_URL
```
## Alternative Lösung: Next.js Rewrite
Falls die API-Route weiterhin Probleme macht, kann ein Next.js Rewrite verwendet werden:
```javascript
// next.config.js
async rewrites() {
return [
{
source: '/api/wiki/:path*',
destination: 'http://wiki:8080/:path*',
},
]
}
```
Dies funktioniert nur server-side und ist möglicherweise zuverlässiger.
## Nächste Schritte
1. ✅ Root-Route hinzugefügt
2. ✅ Error-Handling verbessert
3. ✅ Next.js 15 Compatibility
4. ⏳ Testing in Produktion
5. ⏳ Bei Bedarf: Rewrite statt API-Route verwenden