fix: photos admin — URL via /api/v1/uploads + static Express
- Nest: servir le volume uploads aussi sous /api/v1/uploads (Traefik /api) - Flutter: _fullPhotoUrl = base API + chemin /uploads/... (plus d’origine site seul) - EnfantDossier: tolérer photoUrl camelCase Made-with: Cursor
This commit is contained in:
+13
-2
@@ -7,6 +7,7 @@ import { DocumentBuilder } from '@nestjs/swagger';
|
||||
import { ValidationPipe } from '@nestjs/common';
|
||||
import { LogRequestInterceptor } from './common/interceptors/log-request.interceptor';
|
||||
import * as path from 'path';
|
||||
import * as express from 'express';
|
||||
|
||||
/** Répertoire disque contenant le dossier `photos` (ex. /app/uploads si photos dans /app/uploads/photos). */
|
||||
function resolveUploadsFilesystemRoot(): string {
|
||||
@@ -28,12 +29,22 @@ async function bootstrap() {
|
||||
app.useBodyParser('json', { limit: '15mb' });
|
||||
app.useBodyParser('urlencoded', { extended: true, limit: '15mb' });
|
||||
|
||||
// Servir les fichiers sous /uploads/... (photos enfants / AM). Traefik doit router /uploads vers l’API.
|
||||
app.useStaticAssets(resolveUploadsFilesystemRoot(), {
|
||||
// Photos : chemins stockés en base type /uploads/photos/...
|
||||
// - /uploads/ : si le proxy route ce préfixe vers Nest.
|
||||
// - /api/v1/uploads/ : même trafic que l’API (Traefik PathPrefix /api → pas besoin de règle /uploads).
|
||||
const uploadsRoot = resolveUploadsFilesystemRoot();
|
||||
app.useStaticAssets(uploadsRoot, {
|
||||
prefix: '/uploads/',
|
||||
index: false,
|
||||
fallthrough: true,
|
||||
});
|
||||
app
|
||||
.getHttpAdapter()
|
||||
.getInstance()
|
||||
.use(
|
||||
'/api/v1/uploads',
|
||||
express.static(uploadsRoot, { index: false, fallthrough: true }),
|
||||
);
|
||||
|
||||
// Log de chaque appel API si LOG_API_REQUESTS=true (mode debug)
|
||||
app.useGlobalInterceptors(new LogRequestInterceptor());
|
||||
|
||||
Reference in New Issue
Block a user