我有一个根布局/app/layout.tsx和身份验证页面.我希望身份验证页面不会获得根布局,并且我在/app/auth/layout.tsx文件中为它们定义了一个定制布局.

但是根布局(/app/layout.tsx)包装定制布局(/app/auth/layout.tsx).如何将身份验证页面和子页面排除在获取根布局之外?

我try 将auth dir名称放在()中作为(auth),但不起作用.大多数解决方案都是针对Pages Router人的,对App Router人不起作用.

我使用的是Next.js 13.4.

推荐答案

在Next.js的app目录中,使用Create React AppVite时,将根布局视为index.html文件.您的组件应该在那里呈现.这就是为什么它是必需的,并且应该定义htmlbody个标签,正如doc所说的:

app目录必须包括根app/layout.js. 根布局必须定义<html><body>标记.

如果应用程序的不同部分应该不同,则可以使用Routes Groups创建multiple root layouts:

要创建多个根布局,请删除顶级layout.js文件,并在每个路由组中添加一个layout.js文件.这对于将应用程序划分为具有完全不同的UI或体验的部分非常有用.<html><body>标签需要添加到每个根布局.

enter image description here

在上面的示例中,(marketing)(shop)都有自己的根布局.

例如,您可以将marketing替换为general,将shop替换为auth.附注,(...)个文件夹不会影响URL.

Javascript相关问答推荐

在JavaScript中使用setProperty方法试图修改css元素值时,我遇到错误

setFinder关闭模式并重定向到url

为什么我会获取MUI Date TimePicker TypHelp:Value.isValid不是AdapterDayjs.isValid中的函数

获取POS餐厅会话用户/收银员

将下拉分区与工具提示结合起来

有条件的悲剧

使搜索栏更改语言

如何禁用附加图标点击的v—自动完成事件

将字符串UTC Date转换为ngx—counting leftTime配置值的数字

阿波罗返回的数据错误,但在网络判断器中是正确的

在286之后恢复轮询

我正在建立一个基于文本的游戏在react ,我是从JS转换.我怎样才能使变量变呢?

Angular 中的类型错误上不存在获取属性

Html文件和客户端存储的相关问题,有没有可能?

如何在文本字段中输入变量?

JQuery Click事件不适用于动态创建的按钮

WP Bootstrap NavWaker:下拉菜单一次打开所有下拉菜单

Puppeteer上每页的useProxy返回的不是函数/构造函数

在表单集中保存更改时删除';禁用';

AG-GRIDreact 显示布尔值而不是复选框