import type { NextConfig } from "next"; // basePath: пусто в dev / `/trade-in` в production когда сидим под gendsgn.ru/trade-in. // Прокидывается через env при сборке Docker. const BASE_PATH = process.env.NEXT_PUBLIC_BASE_PATH ?? ""; const nextConfig: NextConfig = { reactStrictMode: true, output: "standalone", // basePath сдвигает ВСЕ routes на /trade-in/* — Next сам префиксит ассеты // и navigation. Пустая строка = no-op. basePath: BASE_PATH || undefined, // assetPrefix — для CDN (мы не используем, оставляем пустым) // trailingSlash — false (default), важно чтобы Caddy /trade-in без слэша // редиректил на /trade-in/. // В dev (без Caddy) Next.js сам проксирует /api/* и /health на backend // так что браузер использует относительные same-origin URLs. async rewrites() { const backend = process.env.BACKEND_URL ?? "http://localhost:8000"; return [ { source: "/api/:path*", destination: `${backend}/api/:path*` }, { source: "/health", destination: `${backend}/health` }, ]; }, }; export default nextConfig;