在一个项目的“next.config.js”文件中指定的重定向路径已在所有项目中实施

Tom*_*ton 5 javascript node.js next.js next-router

有点奇怪...

我已经为我的项目之一的根索引页面指定了重定向路径。它没有问题,并将我重定向到正确的路径,但现在它将我重定向到我所有其他项目的根索引页面的相同路径。(尝试访问localhost:3000现在将我的所有项目重定向到localhost:3000/ggp )

我尝试重新启动服务器,删除原始项目中的 next.config.js 文件,注释掉重定向键,在原始项目和其他项目中使用不同的路径覆盖它,但都无济于事。

这是我第一次创建 next.config.js 文件,显然也是第一次使用重定向键。我遵循文档中的指导(https://nextjs.org/docs/api-reference/next.config.js/redirects)。

起初我认为这可能是因为我将 permanent 设置为 true,但这似乎是一个有点奇怪的功能,使其成为全局的,当我在开发模式(下一个开发)和调试下运行不同的项目时,一切正常工作它应该。所以我不确定该值是否在第一次使用时被缓存或其他什么。

有人以前遇到过这个问题/知道解决方法吗?我将不胜感激你的帮助!

原来的next.js。

module.exports = {
  async redirects() {
    return [
      {
        source: '/',
        destination: '/ggp',
        permanent: true,
      },
    ]
  },
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*ton 3

事实证明,问题在于,当您将 permanent 键设置为 true 时,它​​会在浏览器中缓存重定向路由(至少在 Google Chrome 中是这样),因此重定向路由将用于该路径的所有请求,无论是哪个项目活跃。

清除浏览器缓存并将永久密钥切换为 false,为我解决了这个问题(我刚刚打开检查器,转到网络选项卡,右键单击网络请求表并选择“清除浏览器缓存”)。

对我来说,这似乎是一个奇怪的功能,特别是因为它的使用在文档中似乎相当模糊(尽管可能在我没有看过的地方提到过)。

不管怎样,吸取的教训:在你抓狂之前先在另一个浏览器中测试这个问题:')