You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js新项目被浏览器错误重定向的原因及解决方法

问题描述

我正在开发两个Next.js项目,此前在Firefox中运行第一个项目时,其next.config.ts配置了如下永久重定向规则:

async redirects() {
  return [
    {
      source: '/',
      destination: '/board',
      permanent: true,
    },
  ];
}

关闭该项目的开发服务器并退出VS Code后,我运行第二个无重定向配置的项目,其next.config.ts内容如下:

import type { NextConfig } from "next";

const nextConfig: NextConfig = {
  devIndicators: {
    appIsrStatus: false,
  },
};

export default nextConfig;

执行yarn dev后在Firefox中打开该项目,根页面仍被重定向至/board。我搜索整个项目未找到任何与“board”相关的内容,重启浏览器后问题依旧,但在Chrome中打开则无重定向问题。

原因分析
  • 第一个项目配置的是永久重定向(permanent: true),这类重定向会被Firefox持久缓存到本地,即便服务器端已移除该规则,浏览器仍会优先使用缓存的重定向逻辑。
  • 不同浏览器对永久重定向的缓存策略存在差异:Chrome对本地开发环境的缓存失效判定更敏感,或者缓存周期更短,因此未出现缓存残留问题。
解决方法
  • 清除Firefox全局缓存:
    按下Ctrl+Shift+Delete(Windows/Linux)或Cmd+Shift+Delete(Mac)打开清除数据面板,勾选“缓存”选项,选择合适的时间范围(比如“过去一小时”)后点击“清除”。
  • 移除特定站点的缓存数据:
    1. 在地址栏输入about:preferences#privacy,找到“网站数据”板块,点击“管理数据”。
    2. 搜索本地开发地址(如localhost:3000),选中对应条目后点击“移除”,确认保存即可。
  • 开发时禁用缓存:
    打开Firefox开发者工具(F12),切换到“网络”标签,勾选“禁用缓存”选项,开发期间浏览器将不再缓存重定向或静态资源,从根源避免缓存冲突。
  • 更换开发端口:
    启动第二个项目时指定不同端口,执行命令yarn dev -p 3001,这样Firefox会将两个项目视为不同站点,不会复用之前的重定向缓存。

内容的提问来源于stack exchange,提问作者dinx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 15:49:58