我已经像这样配置了我的 next.config.ts:
nitro: {
devProxy: {
"/auth": {
target: "http://example.com:8000/auth",
changeOrigin: true,
prependPath: true,
},
"/test": {
target: "http://example.com:8000/test",
changeOrigin: true,
prependPath: true,
},
"/prod": {
target: "http://example.com:8000/prod",
changeOrigin: true,
prependPath: true,
},
}
}
当我写作时
npm run generate
并写下
npx serve .output/public
检查生产中构建的项目,它返回 404 错误,响应是 html,但应该是 JSON 对象。我知道 devProxy 仅用于开发,但是我如何在生产中处理代理?
我搜索并看到了这个线程并且我尝试了vite配置,但即使在开发模式下它也不起作用,而且我还尝试了像硝基路由规则
nitro: {
routeRules: {
"/auth/api/login": { proxy: {
to: 'http://example.com:8000/auth/api/login',
} },
'/test/api/sites': {
proxy: 'http://example.com:8000/test/api/sites'
},
'/prod/api/sites': {
proxy: 'http://example.com:8000/prod/api/sites'
}
}
}
它在开发中有效,但在生产中无效。如果我这样写:
nitro: {
routeRules: {
"/auth/**": { proxy: {
to: 'http://example.com:8000/auth/**'
} },
}
}
这也行不通。
proxy: {
options: {
target: 'http://127.0.0.1:yourport',
changeOrigin: true,
pathRewrite: {
'^/api/login': '/api/login',
},
pathFilter: [
'/api/login',
and your rest
]
}
},
锁好