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

NextJS点击Logo跳转首页时JS未加载问题求助

问题根因

跳转Logo使用原生<a>标签触发了浏览器硬导航,而非Next.js客户端路由跳转。
首屏加载时Next.js会基于配置的根路径正确解析所有静态资源地址,因此JS可以正常加载;点击原生a标签跳转时,浏览器会直接按当前页面URL的相对路径拼接静态资源地址,一旦项目存在嵌套路由、自定义basePath/assetPrefix、子路径部署的情况,就会出现JS资源路径解析错误返回404,最终导致页面JS完全不执行。

修复方案
  • 站内跳转统一使用Next.js内置的Link组件替代原生a标签,组件会自动处理客户端路由跳转,不会触发整页刷新,从根源上避免硬导航带来的资源路径错乱问题。
    正确实现代码参考:
    // 首先在文件顶部引入Link组件
    import Link from 'next/link'
    
    // Logo部分的跳转实现
    <Link href="/">
      <img src="/your-logo-path.png" alt="企业Logo" />
    </Link>
    
    注意:Next.js 13+ App Router模式下Link组件用法完全一致,不需要额外包裹a标签。
  • 核对next.config.js配置:如果项目不是部署在域名根路径,要确保basePath和assetPrefix两个配置项的值和实际部署子路径完全一致,两个配置值要保持统一,不要漏写路径前后的斜杠。根路径部署的项目直接删除这两个配置项即可,不要留空或者填错值。
  • 统一路径写法:所有内部跳转路径、静态资源引用路径统一使用以/开头的根绝对路径,不要写./、../开头的相对路径,避免嵌套路由下浏览器解析路径出错。
校验标准

修改完成后点击Logo跳转首页,打开浏览器开发者工具的网络面板:

  • 看不到整页document重载请求
  • 所有JS资源状态码都是200,无404报错
  • 页面所有交互功能正常
    即为修复完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:18:17