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

p3rjfoxz  于 2023-09-29  发布在  Java
关注(0)|答案(2)|浏览(85)

有点奇怪...
我已经为我的一个项目的根索引页指定了重定向路径。它工作没有问题,并重定向到正确的路径,但现在它重定向到同一路径的根索引页为我的所有其他项目。(尝试访问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,
      },
    ]
  },
}
gjmwrych

gjmwrych1#

原来问题是,当你将永久键设置为true时,它会在浏览器中缓存重定向路由(至少在Google Chrome中是这样的),因此重定向路由用于所有指向该路径的请求,而不管哪个项目是活动的。
清除浏览器缓存并将永久密钥切换为false,为我解决了这个问题(我只是打开检查器,进入网络选项卡,在网络请求表中右键单击并选择“清除浏览器缓存”)。
对我来说,这似乎是一个奇怪的功能,特别是因为它的使用在文档中似乎非常模糊(尽管它可能在我没有看过的地方提到)。
不管怎么说,我学到了一课:在另一个浏览器中测试这个问题,然后再把头发扯掉:')

plicqrtu

plicqrtu2#

1.按下屏幕截图中底部的Clear site data按钮;
1.按Empty cache and hard reload(打开DevTools时);
我的环境:Next.js v13.5.3, MacOS, M1, Chrome v117.

相关问题