From 2ce29973f91da27cef9df72de1259652b93bd5d4 Mon Sep 17 00:00:00 2001 From: lekss361 Date: Thu, 21 May 2026 01:17:24 +0300 Subject: [PATCH] =?UTF-8?q?fix(tradein):=20Caddy=20strip=20=D1=82=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D0=BA=D0=BE=20/trade-in=20=D0=B4=D0=BB=D1=8F=20API?= =?UTF-8?q?=20(=D0=BD=D0=B5=20/trade-in/api)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit handle_path /trade-in/api/* стрипал /trade-in/api целиком — FastAPI получал /v1/trade-in/estimate и возвращал 404. FastAPI router на /api/v1/trade-in/*, нужен strip только префикса basePath /trade-in. --- Caddyfile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Caddyfile b/Caddyfile index 59d6ab3c..f7d9564b 100644 --- a/Caddyfile +++ b/Caddyfile @@ -28,14 +28,16 @@ gendsgn.ru { # Trade-In MVP subproject (tradein-mvp/) — gendesign-tradein docker stack, # подключен через gendesign_shared network. Routes ДО универсального handle # потому что Caddy матчит handle-блоки сверху вниз. - handle_path /trade-in/api/* { - # handle_path вырезает префикс /trade-in перед прокси → - # FastAPI получает /api/v1/... + handle /trade-in/api/* { + # `handle_path /trade-in/api/*` стрипал бы целиком /trade-in/api; + # FastAPI router замаунтен на /api/v1/trade-in/* — нужен strip только + # префикса basePath /trade-in (Next.js basePath leak). + uri strip_prefix /trade-in reverse_proxy tradein-backend:8000 } # Matcher `path /trade-in /trade-in/*` ловит И /trade-in (без слеша), - # И /trade-in/ + /trade-in/анisching. Без обоих случаев `handle /trade-in/*` + # И /trade-in/ + /trade-in/anything. Без обоих случаев `handle /trade-in/*` # пропускал /trade-in без слеша → попадал в общий frontend → пустой ответ. @tradein path /trade-in /trade-in/* handle @tradein { -- 2.45.3