我在next.config.js中做了一个简单的重写:
beforeFiles: [ { source: '/foo/bar', destination: '/api/foo/bar', } ]
导航到/foo/bar返回一个404,而调用/API/foo/bar工程,其他重写,不是api相关的工程也,所以我不知道是怎么回事,感谢任何帮助
uttx8gqw1#
您应该将密钥beforeFiles更改为afterFiles重写你的代码
beforeFiles
afterFiles
afterFiles: [ { ..... } ]
qqrboqgw2#
beforeFiles支持静态路由,afterFiles支持动态路由。但是我建议你使用basePath,而不是重写路由:
basePath
module.exports = { basePath: '/api',
如果你不需要重写某些路由,那么你可以将basePath设置为false:
async rewrites() { return [ { source: '/without-basePath', destination: 'https://example.com', basePath: false, }, ]; },
wi3ka0sx3#
我刚刚发现您需要重写到afterFiles的API路由,所以
afterFiles: [ { source: '/foo/bar', destination: '/api/foo/bar', } ]
只是工作,虽然我不知道为什么
3条答案
按热度按时间uttx8gqw1#
您应该将密钥
beforeFiles
更改为afterFiles
重写你的代码
qqrboqgw2#
beforeFiles
支持静态路由,afterFiles
支持动态路由。但是我建议你使用basePath
,而不是重写路由:如果你不需要重写某些路由,那么你可以将basePath设置为false:
wi3ka0sx3#
我刚刚发现您需要重写到
afterFiles
的API路由,所以只是工作,虽然我不知道为什么