96SEO 2026-08-07 02:01 19
在上一节我们完成了 Next.js 的环境搭建,接下来让我们 Next.js 项目的结构。初学者打开项目往往会被众多文件夹和文件吓到——“这是干嘛的?我到底需要哪些,”别担心,下面这份结构图和说明将方便你理清思路。按理说,
my-nextjs-app/
├── app/ # App Router
│ ├── / # 路由组
│ │ ├── login/
│ │ │ └── page.tsx
│ │ └── register/
│ │ └── page.tsx
│ ├── api/ # API 路由
│ │ └── users/
│ │ └── route.ts
│ ├── blog/
│ │ ├── /
│ │ │ └── page.tsx
│ │ └── page.tsx
│ ├── layout.tsx # 根布局
│ ├── page.tsx # 首页
│ ├── loading.tsx # 加载状态 UI
│ ├── error.tsx # 错误处理 UI
│ ├── not-found.tsx # 404 页面 UI
│ └── globals.css # 全局样式
├── components/ # 可复用组件
│ ├── ui/ # 基础 UI 组件
│ └── layout/ # 布局组件
├── lib/ # 工具函数、API 客户端、常量等辅助代码
├── hooks/ # 自定义 React Hooks
├── types/ # TypeScript 类型声明
├── public/ # 静态资源
├── styles/ # 可选样式文件夹
├─ .env.local # 环境变量文件
├─ .eslintrc.json # ESLint 配置
├─ .gitignore # Git 忽略列表
├─ next.config.js # Next.js 配置文件
├─ package.json # npm 包管理文件
├─ tsconfig.json # TypeScript 编译配置
└─ README.md # 项目说明文档
app/ 是 Next.js 推荐的新路由程序。基于 React Server Components。大部分页面与路由都放在这里是你日常开发的主战场。

| 文件 | 用途 | 是否必需 |
|---|---|---|
layout.tsx | 定义全局或分区布局与 UI。不过, | 可选 |
page.tsx | 页面内容与路由映射。 | 必需 |
loading.tsx | 加载期间显示的 UI。 | 可选 |
error.tsx | Error 边界 UI。 | 可选 |
not-found.tsx | Error 页面 404。可选 | |
| route.ts API 路由端点 | 必需
app /
/
about /
page .tsx // /about
layout .tsx // 营销共享布局
page .tsx // /
/
account /
page .tsx // /account
layout .tsx // 商店共享布局
products /
/
page .tsx // 动态段 `/products/:id`
page .tsx // `/products`
api /
users /
route .ts // `/api/users`
layout .tsx // 根布局
page .tsx // 首页
/>
当同一段 UI 在多个页面重复出现时把它抽取成一个组件放在这里让代码更易维护。因为项目增大,一个良好的组件层级能极大提高开发效率。
components /
ui / // 基础 UI 元素
Button .tsx
Input .tsx
Modal .tsx
layout / // 布局相关
Header .tsx
Footer .tsx
features / // 功能特定组件,如 UserProfile、ProductCard 等
UserProfile .tsx
forms /
LoginForm .
/>
把不属于业务逻辑但被多处调用的通用代码集中放在这里例如格式化工具、API 封装或常量定义。老实说,这样可以避免代码重复,而且更易测试与维护。
lib /
utils /
format .
validation .
helpers .
api /
client .
users .
constants .
/>
如果你发现某段状态逻辑需要在多个组件里复用,就把它封装为自定义 Hook 并存放在此处。例如身份验证 Hook、数据获取 Hook 或本地存储 Hook。
hooks /
useAuth .
useData .
/>
图片、字体和 favicon 等静态资源放在此处。可直接通过 URL 引入,无需 import。例如这方面,
public /
images /
logo.png
fonts /
custom-font.wfop
favicon.ico
/>
图片调整、安全重定向及环境变量等全局配置都写在此处。下面给出一个典型示例:
/** @type {import.NextConfig} */
const nextConfig = {
reactStrictMode : true,swcMinify : true。// 图片调整配置 images : {
domains :,formats :
},env : {
CUSTOM_KEY : process.env.CUSTOM_KEY,},async redirects { return }
}
module.exports = nextConfig;
/>
TypeScript 的编译选项集中管理,包括方法别名和 JSX 保留等设置:
{
"compilerOptions": {
"target": "ES2017","lib":,"allowJs": true,"skipLibCheck": true,"strict": true,"forceConsistentCasingInFileNames": true。"noEmit": true,"esModuleInterop": true,"module": "esnext","moduleResolution":"bundler",...
},...
}
/>
/blog/a/b/c。'
diff
痛点新手经常被 “为什么要使用 app/layout 和 app/page?” 所困惑,实际是为了实现 "SSR + CSR 混合渲染"`。理解这一点后你就能顺利搭建层级布局而不会出现重叠。
痛点初学者难以判断哪些文件需要加 .client. 或 .server. 后缀,从而导致浏览器报错。这些后缀告诉 Next 哪些代码只能运行在服务器或客户端。
痛点不熟悉 layout。loading,error,not-found 等特殊文件,很容易误认为它们是普通页面而导致错误跳转。
痛点没有将公共资源放到 public 而直接 import,会导致打包体积膨胀还有运行时报错。
痛点忘记把 .env.local 加进 .gitignore造成敏感信息泄露。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback