2.4 KiB
2.4 KiB
Corrections de déploiement - 24 septembre 2025
Problèmes résolus
1. Configuration Next.js conditionnelle
- Problème:
output: 'export'
etbasePath
appliqués en dev bloquaient HMR - Solution: Configuration conditionnelle dans
next.config.js
const isProd = process.env.NODE_ENV === 'production'; const nextConfig = { ...(isProd ? { output: 'export', basePath: '/lecoffre', assetPrefix: '/lecoffre', trailingSlash: true, images: { unoptimized: true } } : {}) };
2. Nginx - Redirection et proxy
- Problème:
/lecoffre/
retournait 404 car l'image CI ne respectait pasbasePath
- Solution: Rewrite Nginx dans
location ^~ /lecoffre/
rewrite ^/lecoffre/(.*)$ /$1 break; proxy_pass http://localhost:3004;
3. Assets Next.js manquants
- Problème:
/_next/static/
retournait 404 (assets non servis) - Solution: Route Nginx dédiée
location ^~ /_next/ { proxy_pass http://localhost:3004/_next/; add_header Cache-Control "public, max-age=31536000, immutable"; }
4. HMR en développement
- Problème: Besoin d'HMR sans impacter la prod
- Solution: Route dédiée
/lecoffre-hmr/
avec WebSocket supportlocation ^~ /lecoffre-hmr/ { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; rewrite ^/lecoffre-hmr/(.*)$ /$1 break; proxy_pass http://localhost:3000; }
Architecture finale
Production
https://dev4.4nkweb.com/
→ ihm_client (iframe)https://dev4.4nkweb.com/lecoffre/
→ lecoffre-front (app principale)https://dev4.4nkweb.com/_next/
→ assets Next.js
Développement (HMR)
https://dev4.4nkweb.com/lecoffre-hmr/
→ Next.js dev server (port 3000)
Flux IdNot
- CORS dev3 configuré pour
https://dev4.4nkweb.com
- State management via
/api/v1/idnot/state
sur dev3 - Callback vers
/authorized-client
(prod ou HMR)
Variables d'environnement
NEXT_PUBLIC_*
cohérentes entre build CI et runtimeNODE_ENV=production
pour activer basePath/export- CORS dynamique pour dev4.4nkweb.com
Tests validés
- ✅ Redirection 301:
/lecoffre
→/lecoffre/
- ✅ Page d'accueil:
/lecoffre/
→ 200 - ✅ Assets:
/_next/static/
→ 200 - ✅ HMR:
/lecoffre-hmr/
→ 200 - ✅ CORS dev3: OPTIONS 204 + POST state 200
- ✅ ihm_client:
/
→ 200