Files
AI-CS/frontend/next.config.mjs
T
2026-04-02 14:55:06 +08:00

86 lines
2.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 生产用 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;