Next.js 项目结构
此页面提供了 Next.js 项目的文件和文件夹结构的概述。它涵盖了 app
和 pages
目录中的顶级文件和文件夹、配置文件以及路由约定。
顶级文件夹
文件夹名 | 描述 |
---|---|
app |
App Router |
pages |
Pages Router |
public |
待服务的静态资源 |
src |
可选的应用程序源文件夹 |
顶级文件
文件名 | 描述 |
---|---|
next.config.js |
Next.js 的配置文件 |
package.json |
项目依赖项和脚本 |
instrumentation.ts |
OpenTelemetry 和 Instrumentation 文件 |
middleware.ts |
Next.js 请求中间件 |
.env |
环境变量 |
.env.local |
本地环境变量 |
.env.production |
生产环境变量 |
.env.development |
开发环境变量 |
.eslintrc.json |
ESLint 的配置文件 |
.gitignore |
要忽略的 GIT 文件和文件夹 |
.next-env.d.ts |
Next.js 的 TypeScript 声明文件 |
tsconfig.json |
TypeScript 的配置文件 |
jsconfig.json |
JavaScript 的配置文件 |
app
路由约定
路由文件
文件名 | 文件类型 | 描述 |
---|---|---|
layout |
.js .jsx .tsx |
布局 |
page |
.js .jsx .tsx |
页 |
loading |
.js .jsx .tsx |
加载页面 |
not-found |
.js .jsx .tsx |
未找到用户页面 |
error |
.js .jsx .tsx |
错误页面 |
global-error |
.js .jsx .tsx |
全局错误页面 |
route |
.js .ts |
APP 端点 |
template |
.js .jsx .tsx |
重新渲染布局 |
default |
.js .jsx .tsx |
并行路由回退页面 |
嵌套路由
路径 | 描述 |
---|---|
folder |
路由段 |
folder/folder |
嵌套路线段 |
动态路由
文件夹名 | 描述 |
---|---|
[folder] |
动态路由段 |
[...folder] |
捕捉所有路由段 |
[[...folder]] |
可选的捕捉所有路由段 |
路由组和私有文件夹
文件夹名 | 描述 |
---|---|
(folder) |
在不影响路由的情况下分组路由 |
_folder |
选择文件夹和所有子段暴漏路由 |
平行和拦截路线
文件夹名 | 描述 |
---|---|
@folder |
命名插槽 |
(.)folder |
拦截同级 |
(..)folder |
拦截上一级 |
(..)(..)folder |
拦截上两级 |
(...)folder |
从根开始拦截 |
元数据文件约定
App 图标
文件名 | 文件类型 | 描述 |
---|---|---|
favicon |
.ico |
图标文件 |
icon |
.ico .jpg .jpeg .png .svg |
App 图标文件 |
icon |
.js .ts .tsx |
生成的 App 图标 |
apple-icon |
.jpg .jpeg .png |
苹果 App 图标文件 |
apple-icon |
.js .ts .tsx |
生成的苹果 App 图标 |
开放图谱和推特图像
文件名 | 文件类型 | 描述 |
---|---|---|
opengraph-image |
.jpg .jpeg .png .gif |
开放图谱图像文件 |
opengraph-image |
.js .ts .tsx |
生成的开放图图像 |
twitter-image |
.jpg jpeg .png .gif |
推特图像文件 |
twitter-image |
.js .ts .tsx |
生成的推特图片 |
搜索引擎优化(SEO)
文件名 | 文件类型 | 描述 |
---|---|---|
sitemap |
.xml |
站点地图文件 |
sitemap |
.js .ts |
生成的站点地图 |
robots |
.txt |
Robots 文件 |
robots |
.js .ts |
生成的 Robots 文件 |
pages
路由约定
特殊文件
文件名 | 文件类型 | 描述 |
---|---|---|
_app |
.js .jsx .tsx |
自定义 App |
_document |
.js .jsx .tsx |
自定义 Document |
_error |
.js .jsx .tsx |
自定义错误页面 |
404 |
.js .jsx .tsx |
404 错误页面 |
500 |
.js .jsx .tsx |
500 错误页面 |
路由
文件夹约定
文件夹名 | 文件类型 | 描述 |
---|---|---|
index |
.js .jsx .tsx |
主页 |
folder/index |
.js .jsx .tsx |
嵌套页面 |
文件约定
文件名 | 文件类型 | 描述 |
---|---|---|
index |
.js .jsx .tsx |
主页 |
file |
.js .jsx .tsx |
嵌套页面 |
动态路由
文件夹约定
文件夹名 | 文件类型 | 描述 |
---|---|---|
[folder]/index |
.js .jsx .tsx |
动态路由段 |
[...folder]/index |
.js .jsx .tsx |
捕获所有路由段 |
[[...folder]]/index |
.js .jsx .tsx |
可选的捕获所有路由段 |
文件约定
文件名 | 文件类型 | 描述 |
---|---|---|
[file] |
.js .jsx .tsx |
动态路由段 |
[...file] |
.js .jsx .tsx |
捕获所有路由段 |
[[...file]] |
.js .jsx .tsx |
可选的捕获所有路由段 |