| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- /**
- * 生产用 Next 配置(纯 JS,运行时无需 TypeScript)
- * 与 next.config.ts 逻辑一致,供 Docker 生产镜像使用,避免 next start 触发 npm install
- */
- // 开发时代理目标端口(统一从根目录 .env 读取 NEXT_PUBLIC_BACKEND_*)
- const backendPort = process.env.NEXT_PUBLIC_BACKEND_PORT || "8080";
- const backendHost = process.env.NEXT_PUBLIC_BACKEND_HOST || "localhost";
- /** @type {import('next').NextConfig} */
- const nextConfig = {
- async rewrites() {
- if (process.env.NODE_ENV === "development") {
- return [
- // 形态2(同域 /api)在本地开发的兜底:把 /api/* 代理到后端 /api/*
- {
- source: "/api/:path*",
- destination: `http://${backendHost}:${backendPort}/api/:path*`,
- },
- {
- source: "/agent/profile/:path*",
- destination: `http://${backendHost}:${backendPort}/agent/profile/:path*`,
- },
- {
- source: "/agent/avatar/:path*",
- destination: `http://${backendHost}:${backendPort}/agent/avatar/:path*`,
- },
- {
- source: "/agent/embedding-config",
- destination: `http://${backendHost}:${backendPort}/agent/embedding-config`,
- },
- {
- source: "/agent/ai-config/:path*",
- destination: `http://${backendHost}:${backendPort}/agent/ai-config/:path*`,
- },
- {
- // 数据报表 API(后端 gin 路由在 /agent/analytics/summary)
- source: "/agent/analytics/summary",
- destination: `http://${backendHost}:${backendPort}/agent/analytics/summary`,
- },
- {
- source: "/agent/logs/api",
- destination: `http://${backendHost}:${backendPort}/agent/logs/api`,
- },
- {
- source: "/agent/logs/frontend",
- destination: `http://${backendHost}:${backendPort}/agent/logs/frontend`,
- },
- {
- source: "/agent/logs/min-level",
- destination: `http://${backendHost}:${backendPort}/agent/logs/min-level`,
- },
- {
- source: "/:path((?!_next|agent|chat|favicon.ico).*)",
- destination: `http://${backendHost}:${backendPort}/:path*`,
- },
- ];
- }
- return [];
- },
- images: {
- remotePatterns: [
- {
- protocol: "http",
- hostname: "192.168.124.9",
- port: backendPort,
- pathname: "/uploads/**",
- },
- {
- protocol: "http",
- hostname: "localhost",
- port: backendPort,
- pathname: "/uploads/**",
- },
- {
- protocol: "http",
- hostname: "127.0.0.1",
- port: backendPort,
- pathname: "/uploads/**",
- },
- ],
- },
- };
- export default nextConfig;
|