静态网站生成与服务端渲染
理解 Rspress 如何构建和渲染您的文档对于优化和部署至关重要。本章探讨静态网站生成(SSG)、服务端渲染(SSR)以及 Rspress 中的构建过程。
理解 SSG vs SSR
静态网站生成 (SSG)
SSG 在构建时预渲染所有页面,生成静态 HTML 文件:
优势:
- 极快的页面加载
- 更好的 SEO(内容立即可用)
- 更低的服务器成本(只需提供静态文件)
- 可以在简单托管上工作(不需要服务器)
- 可以在 CDN 上缓存
最适合:
- 文档网站
- 博客
- 营销页面
- 不经常变化的内容
服务端渲染 (SSR)
SSR 在每次请求时渲染页面:
优势:
- 始终最新的内容
- 可以为用户个性化
- 访问请求数据
- 动态内容生成
最适合:
- 用户仪表板
- 个性化内容
- 频繁变化的数据
- 动态应用程序
Rspress 的方法
Rspress 主要使用 SSG,并具有可选的 SSR 能力:
构建过程
构建管道
理解 Rspress 的构建管道:
构建命令
构建输出
构建后,Rspress 生成:
构建配置
基本构建设置
配置构建过程:
优化设置
优化构建输出:
预渲染
预渲染如何工作
Rspress 使用 React SSR 预渲染页面:
- 解析内容: 读取和解析 Markdown/MDX
- 执行 React: 运行 React 组件生成 HTML
- 序列化状态: 捕获应用程序状态
- 生成 HTML: 创建带内联状态的完整 HTML
- 优化: 压缩和优化输出
预渲染配置
控制预渲染行为:
水合
什么是水合?
水合使静态 HTML 具有交互性:
Rspress 中的水合
优化水合
代码分割
自动代码分割
Rspress 按路由自动分割代码:
手动代码分割
分割大型组件:
构建性能
测量构建时间
优化策略
- 减少依赖
- 懒加载重型内容
- 优化图片
缓存
启用构建缓存以加快重建:
构建模式
开发模式
快速构建和热重载:
生产模式
优化的部署构建:
预览模式
本地测试生产构建:
高级构建功能
自定义构建脚本
添加自定义构建脚本:
环境变量
在构建中使用环境变量:
SEO 优化
Meta 标签
在构建期间添加 meta 标签:
故障排除
构建失败
- 内存问题
- 缺少依赖
慢速构建
- 在生产中禁用 source maps
- 减少依赖
- 使用构建缓存
- 在构建前优化图片
- 将大页面分割成较小的页面
最佳实践
构建检查清单
在部署前:
- 运行生产构建
- 使用预览测试
- 检查 bundle 大小
- 验证所有页面加载
- 在移动设备上测试
- 检查 Lighthouse 分数
- 验证 HTML
- 测试所有链接
下一步
::: tip 性能提示
- 启用构建缓存以加快重建
- 对大型站点使用代码分割
- 在添加图片之前优化它们
- 定期监控 bundle 大小 :::
::: warning 生产构建
- 在部署前始终测试生产构建
- 在生产中启用压缩
- 在生产中禁用 source maps
- 使用环境变量进行配置 :::