有点奇怪...
我已经为我的一个项目的根索引页指定了重定向路径。它工作没有问题,并重定向到正确的路径,但现在它重定向到同一路径的根索引页为我的所有其他项目。(尝试访问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,
},
]
},
}
2条答案
按热度按时间gjmwrych1#
原来问题是,当你将永久键设置为true时,它会在浏览器中缓存重定向路由(至少在Google Chrome中是这样的),因此重定向路由用于所有指向该路径的请求,而不管哪个项目是活动的。
清除浏览器缓存并将永久密钥切换为false,为我解决了这个问题(我只是打开检查器,进入网络选项卡,在网络请求表中右键单击并选择“清除浏览器缓存”)。
对我来说,这似乎是一个奇怪的功能,特别是因为它的使用在文档中似乎非常模糊(尽管它可能在我没有看过的地方提到)。
不管怎么说,我学到了一课:在另一个浏览器中测试这个问题,然后再把头发扯掉:')
plicqrtu2#
1.按下屏幕截图中底部的
Clear site data
按钮;1.按
Empty cache and hard reload
(打开DevTools时);我的环境:
Next.js v13.5.3, MacOS, M1, Chrome v117.