Next.js重写API路由不起作用

qhhrdooz  于 2023-05-28  发布在  其他
关注(0)|答案(3)|浏览(156)

我在next.config.js中做了一个简单的重写:

beforeFiles: [
  {
   source: '/foo/bar',
   destination: '/api/foo/bar',
  }
 ]

导航到/foo/bar返回一个404,而调用/API/foo/bar工程,其他重写,不是api相关的工程也,所以我不知道是怎么回事,感谢任何帮助

uttx8gqw

uttx8gqw1#

您应该将密钥beforeFiles更改为afterFiles
重写你的代码

afterFiles: [
  {
   .....
  }
]
qqrboqgw

qqrboqgw2#

beforeFiles支持静态路由,afterFiles支持动态路由。但是我建议你使用basePath,而不是重写路由:

module.exports = {
  basePath: '/api',

如果你不需要重写某些路由,那么你可以将basePath设置为false:

async rewrites() {
    return [
      {
        source: '/without-basePath',
        destination: 'https://example.com',
        basePath: false,
      },
    ];
  },
wi3ka0sx

wi3ka0sx3#

我刚刚发现您需要重写到afterFiles的API路由,所以

afterFiles: [
  {
   source: '/foo/bar',
   destination: '/api/foo/bar',
  }
 ]

只是工作,虽然我不知道为什么

相关问题