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

Next.js 13中如何添加_document.js/_app.js?pages文件夹失效问题

Next.js App Router下全局自定义文件的正确配置方式

项目目录结构

你当前的项目采用的是Next.js的App Router(目录为src/app/),而_document.js和_app.js是旧版Pages Router(基于pages/目录)的全局自定义文件,直接在src下新建pages文件夹是无效的——App Router和Pages Router不能随意混用,这就是你没达到预期效果的原因。

下面是App Router对应的替代方案:

1. 全局布局(替代_app.js)

在src/app/layout.js(或layout.tsx)中定义根布局,所有页面都会自动继承这个布局,你可以在这里添加全局样式、通用组件、全局状态逻辑等。
示例代码:

import './globals.css';

export default function RootLayout({ children }) {
  return (
    <html lang="zh-CN">
      <body>{children}</body>
    </html>
  );
}

如果你的项目里没有这个文件,直接手动创建即可,它是App Router的必需文件。

2. 自定义HTML结构(替代_document.js)

在src/app/document.js(或document.tsx)中自定义HTML根结构,比如修改<html>属性、添加全局脚本、自定义<head>内容等。
示例代码:

import { Html, Head, Main, NextScript } from 'next/document';

export default function Document() {
  return (
    <Html lang="zh-CN">
      <Head />
      <body>
        <Main />
        <NextScript />
      </body>
    </Html>
  );
}

重要提醒

不要尝试同时启用App Router和Pages Router,这会导致项目出现路由冲突、渲染异常等不可预期的问题,坚持使用一种路由方案即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:20:04