Next.js 项目结构
此页面概述了 Next.js 应用的项目结构。它涵盖了 app
和 pages
目录中的顶层文件和文件夹、配置文件以及路由约定。
¥This page provides an overview of the project structure of a Next.js application. It covers top-level files and folders, configuration files, and routing conventions within the app
and pages
directories.
单击文件和文件夹名称以了解有关每个约定的更多信息。
¥Click the file and folder names to learn more about each convention.
顶层文件夹
¥Top-level folders
顶层文件夹用于组织应用的代码和静态资源。
¥Top-level folders are used to organize your application's code and static assets.
app | 应用路由 |
pages | 页面路由 |
public | 要提供的静态资源 |
src | 可选的应用源文件夹 |
顶层文件
¥Top-level files
顶层文件用于配置应用、管理依赖、运行中间件、集成监视工具以及定义环境变量。
¥Top-level files are used to configure your application, manage dependencies, run middleware, integrate monitoring tools, and define environment variables.
Next.js | |
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
路由约定
¥app
Routing Conventions
以下文件约定用于定义路由并处理 app
路由 文件中的元数据。
¥The following file conventions are used to define routes and handle metadata in the app
router.
路由文件
¥Routing Files
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 | API 端点 |
template | .js .jsx .tsx | 重新渲染布局 |
default | .js .jsx .tsx | 并行路由后备页面 |
嵌套路由
¥Nested Routes
folder | 路由段 |
folder/folder | 嵌套路由段 |
动态路由
¥Dynamic Routes
[folder] | 动态路段 |
[...folder] | 包罗万象的路由段 |
[[...folder]] | 可选的包罗万象的路由段 |
路由组和私有文件夹
¥Route Groups and Private Folders
(folder) | 对路由进行分组而不影响路由 |
_folder | 选择文件夹和所有子段不参与路由 |
并行和拦截的路由
¥Parallel and Intercepted Routes
@folder | 命名槽 |
(.)folder | 拦截同级 |
(..)folder | 拦截上方一层 |
(..)(..)folder | 拦截上面两层 |
(...)folder | 从根拦截 |
元数据文件约定
¥Metadata File Conventions
应用图标
¥App Icons
favicon | .ico | 网站图标文件 |
icon | .ico .jpg .jpeg .png .svg | 应用图标文件 |
icon | .js .ts .tsx | 生成的应用图标 |
apple-icon | .jpg .jpeg 、.png | 苹果应用图标文件 |
apple-icon | .js .ts .tsx | 生成的苹果应用图标 |
打开图谱和 Twitter 图片
¥Open Graph and Twitter Images
opengraph-image | .jpg .jpeg .png .gif | 打开图形图片文件 |
opengraph-image | .js .ts .tsx | 生成的 Open Graph 图片 |
twitter-image | .jpg .jpeg .png .gif | 推特图片文件 |
twitter-image | .js .ts .tsx | 生成的 Twitter 图片 |
SEO
sitemap | .xml | 站点地图文件 |
sitemap | .js .ts | 生成的站点地图 |
robots | .txt | 机器人文件 |
robots | .js .ts | 生成的机器人文件 |
pages
路由约定
¥pages
Routing Conventions
以下文件约定用于定义 pages
路由.conf 中的路由。
¥The following file conventions are used to define routes in the pages
router.
特殊文件
¥Special Files
_app | .js .jsx .tsx | 自定义应用 |
_document | .js .jsx .tsx | 自定义文件 |
_error | .js .jsx .tsx | 自定义错误页面 |
404 | .js .jsx .tsx | 404 错误页面 |
500 | .js .jsx .tsx | 500 错误页面 |
路由
¥Routes
文件夹约定 | ||
index | .js .jsx .tsx | 主页 |
folder/index | .js .jsx .tsx | 嵌套页面 |
文件约定 | ||
index | .js .jsx .tsx | 主页 |
file | .js .jsx .tsx | 嵌套页面 |
动态路由
¥Dynamic Routes
文件夹约定 | ||
[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 | 可选的包罗万象的路由段 |