指南与教程 - 背景图片 | Rainy Design Studio

Next.js + Strapi + Tailwind CSS 建站教程

RainyOct 10, 2024

本文章的版权归属 Rainy Design Studio - 雨点设计工作室 ,且最终解释权归站长所有。
除本站自媒体官号以外,本文的内容禁止任一组织、个人、账号或平台,以任何形式转载到 RainyDesign.cn 站外。
任何个人或组织进行非法转载的,本站工作人员可对其追究法律责任。

具体信息详见 条例与条款

Next.JS + Strapi + Tailwindcss 全套网建实战教学 —— 前言:需求、目录与声明

使用 Next.JS 与 Tailwind CSS 快速搭建你的网站,并借由 Strapi 构建你的内容管理系统。

一、前言

1.1 写在前面

大家好,我是 Rainy Design Studio 的 Rainy,本次让我们来一起学习一套 Next.JS + Strapi + Tailwind CSS 的成熟的网站搭建流程。

由于本文要持续更新 3~5 个月,所以我们也说不准字数有多少、不会随着新版本的公布更新章节与内容;且由于内容过长,文章将拆分为多个片段,每段内容对应的章节量暂定为4~6篇不等。

好吧,这篇教程从 2025 年 5 月断断续续写到 12 月终于是写完了,甚至横跨了 Next.JS v15 ~ v16 两个版本,庆幸的是 v16 的改动不多,共计 4 万多字,配合视频食用效果更佳(别催啦,已经在剪了)。

转眼就来到 2026 年了,春节前后穿插项目和官网升级,加上本教程需要大量的资料从视频截图与公网获取,又断断续续花了好几个月才赶上。

即便对照视频,具体也务必以本博客图文为准,毕竟写代码难免有修修改改,博客更新容易、但每次都重新剪视频就有些不现实了。

可能你会吐槽部分文本的翻译腔,毕竟我们也有一个国际站 rainydesign.studio ,这也是为了方便后续翻译嘛(在做了在做了) :P

1.2 教程简介

快速上手一套能匹配绝大多数建站需求的前端知识。

在本次课程中,你将会学到基于 React 的前端框架—— Next.JS 的工作原理,再通过 Tailwind CSS 实现布局,以极大地减少你的样式开发耗时,而这一切都建立在一款 Headless CMS (无头内容管理系统) —— Strapi 之上,我们将使用它来管理你所需的所有页面数据、cookie、webhook、token等内容,以自由、不受限地布局你的页面,且无需再为后端设计感到困扰。

开始学习前,你需要具备一定的 HTML5 + CSS3 + JavaScript 知识、40~120个小时的学习与练习时间、会查阅资料自主学习(如 StackOverflowGithub 应该是你的常用网站),以及一点点耐心。这些硬性要求将在正文的 准备工作 章节中有一个明晰的列表供你确认。

此外,课程目录可能会随着课程推进略有调整。如果你喜欢本课程的基础内容,那么你还可以进一步学习本课程的进阶内容。

请注意:课程内用作演示的项目更倾向于技术讲解,而非尽可能兼容常见的项目需求,也就是说,某些看上去不符合实际需求的模块是我们刻意设计的,旨在演示一个适配当前框架的应用实例

值得一提的是, 它们都是免费的 ——当然不会按着你的脑袋浏览哪怕只有三秒钟的广告。

搜索文章内容请按下键盘上的Ctrl(Mac为Command) + F查找,
收藏文章请按下键盘上的Ctrl / Command + D加入书签栏。

1.3 能力需求

以下枚举了学习本教程所需的技能板块及对应的能力需求。

开发基础


  • 熟练掌握开发程序的使用,如 VSCode 或 Atom 等等;
  • 熟练运用一种常见系统上的终端,且能独立配置环境变量;
  • 习惯独立解决问题,遇事不决先自查 Github 或 StackOverflow 等等。

前端常识


  • 熟练掌握 html5 与 CSS3,对原生 Javascript 有一定了解;
  • 至少熟悉一套前端框架,如 Vue 2 加 Bootstrap 或 Less ;
  • 熟练运用浏览器内的开发者工具以做网页调试。
我们默认你已具备以上能力,并且不会在课程正文中额外讲解这些基础知识。

1.4 学习目标

  • 完成基于 React 与 Next.JS 框架的静态网站搭建
  • 使用 Tailwind CSS 还原响应式布局及常见样式与动效
  • 使用 Strapi 管理静态资源并存储数据
  • 使用 REST API 获取数据并渲染页面
  • 基于 CentOS 或 Cloudflare / Vercel 托管的网站上线工作

1.5 教程声明

本教程面向业内人员,课程演示项目仅供学习交流使用,不得作商业用途,敬请理解。

注:本教程涉及到部分关于素材及软件的版权问题,详见 条例与条款 - 免责声明

二、教程目录

2.1 核心章节

  1. 前言:需求、目录与声明

    提到上一个教程,列出软硬件及已掌握的技术栈需求,以及学会本课程能掌握什么能力与免责声明,并介绍 Strapi 、 Next.JS 与 Tailwind CSS ,以及每个章节在日后的扩展内容

  2. 准备工作:基本需求

    讲解学习本课程所需具备的软硬件条件,并做好初期配置工作、搭建开发环境

  3. 准备工作:项目流程

    讲解 Rainy Design Studio 的伙伴们有别于市场的工作流,是如何立项与推进的,讲述为什么要先做数据结构管理,再去做项目内容,以极大地减少工时浪费

  4. 准备工作:通读设计稿 + 数据与接口设计

    解释何为数据库设计,根据设计稿的内容推导数据设计逻辑

  5. 准备工作:MySQL 简介

    MySQL 的基本命令如安装、初始化、启动、修改随机密码与除障,Path 的可选添加,创建数据库

  6. Strapi:创建无头数据管理系统

    讲解 Headless CMS 与常见 CMS 的区别;Strapi 项目的创建、注册,管理管理员账号及权限,插件商场介绍,.env 的设置,入门几步走

  7. Strapi:管理数据库表结构

    使用 Strapi 进行表结构管理(Content-Type Builder),三种大类及各个内容类型

  8. Strapi:管理多媒体资源

    Strapi 媒体资源库(Media library)的使用与配置,以及 Strapi 的 public/uploads 是如何存储公共静态资源的

  9. Strapi:填写内容、配置 API 权限并测试

    Strapi 内容管理器的使用、列表浏览配置(View Settings)以及布局浏览设置(Configure the view),开放端口并在地址栏预览 API;简单介绍 Insomnia

  10. Strapi:REST API 简介,实现增删改查及筛排分页

    了解 REST API 的基本工作原理,实现增删改查、筛选、排序、分页等一系列内容,以按需获取数据

  11. Next.JS:创建项目并管理目录

    Next.JS 简介,项目的创建及设置、启用开发模式,jsconfig.json 的配置以及目录结构、公共目录与基本文件介绍

  12. Next.JS:管理路由,搭建基础布局与页面

    有别于 Next.JS 的 APP 路由,此处讲解页面路由(Page router)逻辑,自定义 _app.js_document.js ,创建布局文件 Layout.js 并建立导航

  13. Next.JS:API 函数与页面渲染(SSR、SSG、CSR)

    执行 Next.JS 项目建站的一些必要工作,比如创建 .env 并设置全局变量、建立 /lib 文件夹、封装 fetcher 方法等;讲解几种渲染方式:SSRServer-side Rendering,服务端渲染SSGStatic Site Generation,静态站点生成仅可用于页面,Components 只能使用 useSWRCSRClient-side Rendering,客户端渲染;创建各类页面,并为各类页面中的渲染函数设置好 REST API 参数,以获取特定数据为后续课程做准备

  14. Next.JS:内建组件与资源引用

    讲解 Next.JS 项目的官方内建组件如 Next Image 、 Next Link 、 Next Head 等,以及引用 CSS 和 Google Fonts 或本地字体

  15. Next.JS + Strapi:开发与数据传递

    模拟项目的类型是企业官网;我们依据该类型创建各类常用组件,从接口获取数据并传递给子孙组件并渲染为 HTML

  16. Tailwind CSS:简介、安装、新特性与旧版本升级

    介绍 Tailwind CSS 的原子类优先(utility-first)设计理念,讲解其与传统 CSS 框架的区别;演示安装配置流程,包括 PostCSS 配置、tailwind.config.js 设置、全局样式导入等;介绍 Tailwind CSS v4 的新特性及从旧版本升级的注意事项

  17. Tailwind CSS:示例、核心概念与演练

    通过水晶球等实战案例展示 Tailwind CSS 的强大功能;讲解核心概念如响应式设计、状态变体(hover、focus 等)、暗黑模式、自定义主题配置等;通过实际演练掌握常用工具类的组合使用技巧

  18. Tailwind CSS:全局组件样式开发

    使用 @layer 指令创建可复用的全局样式;开发常用组件如按钮、表单、卡片等的基础样式;讲解如何在 globals.css 中定义自定义工具类和组件类,实现项目级别的样式统一管理

  19. Tailwind CSS:主要页面布局实战

    实战开发网站的主要页面布局,包括首页、博客列表页、文章详情页、关于页面等;运用 Flexbox 和 Grid 布局系统构建响应式设计;实现导航栏、页脚、侧边栏等常见布局模块,完成整站视觉效果

  20. Tailwind CSS:章节知识点汇总

    总结 Tailwind CSS 章节的核心知识点;回顾常用工具类、配置技巧、最佳实践;提供速查表和常见问题解答;为后续项目开发打下坚实基础

  21. React.JS (JSX):使用 ReactMarkdown 插件美化正文

    安装并配置 ReactMarkdown 及相关插件(如 remark-gfm、rehype-raw 等);实现 Markdown 内容的渲染,支持代码高亮、表格、自定义组件等功能;为博客文章内容提供丰富的排版效果

  22. Strapi + Next.JS + JSX:博客文章搜索

    实现博客文章的全文搜索功能;使用 Strapi 的过滤器 API 进行服务端搜索;创建搜索页面,处理搜索表单提交、URL 参数管理、搜索结果展示;优化用户体验,添加加载状态和错误处理

  23. Strapi + Next.JS + JSX:文章列表分页

    使用 Strapi 的分页 API 实现文章列表分页;创建分页组件,支持页码跳转、上一页/下一页导航;处理动态路由和 URL 参数;优化 SEO,为分页添加正确的 meta 标签和 canonical 链接

  24. Next.JS:为 SSG 页面设置 ISR 以实现性能优化与预生成

    讲解增量静态再生成(ISR)的工作原理和应用场景;通过 revalidate 参数实现页面的定时更新;对比 SSG、SSR 和 ISR 的性能差异;为博客文章和列表页面配置合适的重新验证策略,平衡性能与内容时效性

  25. Strapi Lifecycles hooks:客户联络自动转发邮件

    介绍 Strapi 的生命周期钩子(Lifecycle hooks)机制;配置邮件服务(如 Nodemailer);创建联系表单的后端逻辑,在数据创建时自动发送邮件通知;实现表单提交的完整流程,包括数据验证、错误处理和用户反馈

  26. Next.JS:自定义错误页面如 404、500

    创建自定义的 404 和 500 错误页面;使用 getStaticProps 获取全局数据;设计友好的错误提示界面,提供返回首页等导航选项;讲解 _error.js 的工作机制,处理各种类型的错误状态

  27. Next.JS:创建 sitemap.xml 和 robots.txt 文件并自动更新

    创建动态生成的 sitemap.xml,自动包含所有文章和页面;配置 URL 优先级、更新频率和最后修改时间;创建 robots.txt 文件,正确引用 sitemap;添加缓存控制,优化搜索引擎爬取效率;提升网站 SEO 表现

  28. 网站部署:Cloudflare、Vercel 或租赁云服务器(撰写中)

    使用 Cloudflare 或 Vercel 等平台进行一键部署,或租赁云服务器进行自主部署

  29. 网站部署:注册域名 + SSL 证书申请

    暂时调用往期教程,日后进一步完善。 用腾讯云做演示。如使用上述托管方案则无需手动申请 SSL,Vercel 会默认提供 SSL 服务。

  30. 搜索引擎提交收录(撰写中)

    谷歌 GSC 提交以及百度站长工具,以及 Facebook Pixel、Trustpilot 等第三方 script 的接入

  31. 资源与教程项目包下载

    项目文档必须科学上网在 Github 上获取(晚点上传);其他资源详见页尾,下载教程资源包请 点击此处

  32. 常见疑问解答(即将开放)

    本博客的评论功能我们暂不开启。如您想洽谈合作或存在各种疑问,请关注我们的微信公众号 RainyDesign 并在后台留言、关注 B 站账号 RainyDesign 雨点设计 发送私信,或者给我们发邮件:RainyDesignStudio@outlook.com

2.2 进阶学习

下列内容适用于需要进一步学习的小伙伴们。由于工作繁忙,我们将优先更新正文,并整理好相关章节的指南作为额外学习内容参考;本小节中提到的进阶文档将于之后择日更新。

2.2.1 Strapi 进阶讲解

相关文档:Strapi 开发指南

下列内容仍在准备,敬请期待。

  1. Strapi:API 进阶知识

    深度筛选与复杂的填充筛选等参数的集合使用,以及 Query String 库的使用

  2. Strapi:i18n(国际化设置)

    了解如何开启 i18n、为语言设置权限,并通过 API 获取数据

  3. Strapi:草稿 (Draft) 、预览 (Preview) 与本地 md 文件预览

    讲解如何在 Strapi 中开启草稿与预览,以及如何配合 Next.js 渲染草稿预览页,或是直接读取本地 markdown 文件进行预览

  4. Strapi:src 文件与模板

    如何编辑 json 文件快速创建与修改内容编辑器接口,以及自定义一套预设好的 template 以协助创建 Strapi 内容结构

  5. Strapi:插件市场介绍与安装、插件配置

    具体访问 Strapi Plugin Marketplace 并进行介绍

  6. Strapi:Webhook 与 Token 介绍

    配合 Next.JS 实现基于权限的登陆与访客留言功能,以作案例讲解

  7. Strapi:数据管理,如导入、导出与迁移

    yarn strapi export --file my-strapi-export 等命令详解,并迁移到面面俱到的 PostgreSQL。

  8. ……

2.2.2 Next.JS 进阶讲解

下列内容仍在准备,敬请期待。

  1. Next.JS:配置 ISR 及 ODR

    讲解如何配置 ISR 以定期获取数据渲染静态页面,并为部分页面执行按需 ISR

  2. Next.JS:结构化数据

    讲解如何位各页面添加符合 Google Rich Results 规范的 Schema Markup

  3. Next.JS:内容优化

    讲解 Next.JS 是如何优化图片、文字等多媒体资料的,包括为 LCP 内容添加 priority、quality 等参数等等

  4. Next.JS: 全局注入

    讲解如何注入第三方 JS, 如 Google Tag Manager、Analytics、Google Maps Embed、YouTube Embed 等等

  5. Next.JS:正文优化

    讲解如何进一步优化 markdown 逻辑,并为博客正文增添侧边栏目录

  6. Next.JS:OG image

    讲解如何使用 vercel/og 设计并灵活配置你的分享图片

  7. Next.JS:i18n 适配

    讲解如何配置 Next.JS 中各页面的 API 与 config 中的设置,以实现单域名或多域名情况下的 i18n 数据渲染

  8. ……

2.2.3 Tailwind CSS 深度讲解

相关文档:Tailwind CSS 开发指南

下列内容仍在准备,敬请期待。

  1. Tailwind CSS:进一步讲解分层设计

    深度讲解 base、components 与 utilities 层,实现类名的分层管理

    • 案例:通过分层构建你的 component 与 utilities 库,以及自定义默认的字体属性
  2. Tailwind CSS:配置文件详解

    详解项目根目录下的tailwind.config.js中的contentsafeListthemetheme.extendplugins等常用对象,并补充讲解prefiximportantseparator以及corePlugin等知识内容
    内容已过时,请以 Tailwind CSS v4 的最新标准为准

  3. Tailwind CSS:Nesting CSS、函数与指令

    讲解 Nesting CSS 是如何在 Tailwind CSS 中工作的,并详解常见的 directives 与 functions 以及其使用方法

    • 案例:一个简易美观的的 Nesting CSS 组件,并结合 directives 与 functions 实现
  4. Tailwind CSS:响应式设计、选择器、伪类与状态

    讲述基于移动端的 Responsive Design 、媒体查询代码以及符合 Tailwind CSS 标准的设计稿,并介绍 Tailwind CSS的各类选择器如 Group 及 Peer 等,以及伪类与状态

    • 案例:在不同分辨率下涉及不同交互逻辑的插件
  5. Tailwind CSS:主题以及追加设置、深色模式

    讲解 Tailwind CSS Default Theme 内容、如何变更及追加自定义以及深色模式

    • 案例:定制自己的Theme,以及Darkmode的具体应用
  6. Tailwind CSS:基于 React hooks 及数据传值的组件状态与交互动画

    演示一个范例,讲解如何使用 useState 或依据传入的数据改变组件状态,并详解条件渲染的 Tailwind CSS 类、基于组件层封装的 Nesting CSS 及 @Apply 应用的三步走

  7. ……

2.2.4 其他学习内容

用于配合本课程的各类知识补充,有些是我自己一点点记录的笔记,还有些则是 LLM 生成或辅助整理的。目前仍在补充完善,敬请期待。

三、开始学习

点击此处 下载课程资源包,然后点击上述任意高亮的标题跳转至对应章节,或者 点击这里 开始从头学习。

如需安装 Adobe XD,请访问下述链接下载:

3.1 相关工具

本教程中所使用到的所有工具与软件请于下表自取:

软件类型官网链接用于
Node.JS运行环境nodejs.org运行 JavaScript 后端项目与管理依赖包
VSCode软件visualstudio.com编写与编辑代码的轻量级集成开发环境
Tailwind CSS IntelliSenseVSCode 插件请于插件市场内搜索提供 Tailwind 类名自动补全、高亮与提示
Live ServerVSCode 插件请于插件市场内搜索本地静态网页的实时自动刷新与预览
Tailwind Standalone独立程序github.com在无 Node 环境下本地编译 Tailwind 样式
Insomnia软件insomnia.rest测试与调试 REST、GraphQL 等各类 API 接口
Arc Browser网页浏览器arc.net高效分栏与空间管理的现代化网页浏览工具

4.2 参考资料

订阅

解锁深度且前沿的前端技术、设计理念与用户交互探寻之道。