纯静态网站上线部署
纯静态网站上线不需要 Node 常驻服务。正确做法是本地或服务器 build,上传构建产物,用 Nginx root 指向静态目录,并确认 clean URL、sitemap 和缓存策略。
纯静态网站上线的目标很简单:build 后得到一批 HTML、CSS、JS、图片和 sitemap 文件,服务器用 Nginx 直接托管。
上线时不要把开发服务器当生产服务,也不要让 Node 进程常驻跑教程站。
部署前先确认产物
请检查当前静态站的构建和部署方式。 要求: 1. 确认 build 命令是什么。 2. 确认 build 后生成哪些静态文件。 3. 确认哪些文件需要上传服务器。 4. 确认是否需要 Node 常驻服务。 5. 确认 clean URL 如何由 Nginx 支持。
服务器目录建议
主站和二级域名站点要放在不同目录,避免脚本拉错仓库。
示例:
/www/wwwroot/aigcbaba-main /www/wwwroot/claude-code-tutorial
每个站点独立:
- 独立 Git 仓库目录。
- 独立部署脚本。
- 独立 Nginx server block。
- 独立日志和缓存策略。
上传哪些文件
纯静态站最终要上传的是构建后的可访问产物,而不是只上传 Markdown 源文档。
通常包括:
index.htmldocs/assets/styles.cssscript.jssitemap.xmlrobots.txt
如果服务器上执行 build,可以上传整个仓库,再由部署脚本 build。 如果本地 build 后上传,就要确认所有构建产物完整。
自动拉代码会不会冲突
不会,前提是部署脚本进入正确目录再 git pull。
错误思路:
在任意目录执行 pull,希望服务器自己知道拉哪个项目。
正确思路:
进入 claude-code-tutorial 仓库目录 -> git pull -> npm run build -> Nginx 指向该目录或构建目录
让 CC 帮忙审查脚本:
请审查这个静态站部署脚本。 重点看: 1. 是否进入了正确项目目录。 2. 是否拉的是当前站点仓库。 3. 是否执行了 build。 4. Nginx root 指向哪里。 5. 是否会影响主站目录。 6. 是否有回滚或失败提示。
Nginx clean URL
如果页面路径是:
/docs/start
构建产物通常是:
docs/start/index.html
Nginx 需要能按目录找 index.html。
常见配置思路:
location / {
try_files $uri $uri/ =404;
}如果项目有自定义目录,需要让 CC 按实际产物检查,不要照抄配置。
上线前检查
| 检查项 | 标准 |
|---|---|
| build | 本地或服务器构建成功 |
| 首页 | / 能访问 |
| 文档页 | /docs/start 这类 clean URL 能访问 |
| sitemap | /sitemap.xml 能访问 |
| robots | /robots.txt 能访问 |
| 静态资源 | CSS、JS、favicon 正常 |
| 404 | 不存在页面返回合理状态 |
缓存策略
静态资源可以缓存,但 HTML 不建议缓存太久:
| 类型 | 建议 |
|---|---|
| HTML | 缓存短一点,方便更新教程 |
| CSS / JS | 可以中等缓存,改动后确认刷新 |
| 图片和字体 | 可以较长缓存 |
| sitemap / robots | 保持可及时更新 |
如果站点更新后用户看到旧内容,先怀疑浏览器缓存、CDN 缓存或 Nginx 缓存。
部署后验收模板
请生成静态站部署后验收清单。 请检查: 1. 首页是否能访问。 2. 顶部导航是否能跳转。 3. 文档 clean URL 是否正常。 4. sitemap 和 robots 是否正常。 5. CSS、JS、favicon 是否加载。 6. 手机端是否能正常阅读。 7. 是否有旧 .html 链接残留。
不要做这些
- 不要把 dev server 当生产服务。
- 不要把主站和教程站放同一个 Git 目录。
- 不要在主站目录执行教程站部署脚本。
- 不要 build 后只上传一部分文件。
- 不要忘记 sitemap 和 robots。
- 不要让
.html和 clean URL 混用。
回滚怎么做
静态站回滚比后端服务简单,但也要提前想好:
请设计静态站回滚方案。 请说明: 1. 是否保留上一版构建产物。 2. 如果新版本页面 404,怎么切回上一版。 3. 如果只是文档内容错误,是否可以重新 pull 和 build。 4. 回滚后要检查哪些页面。 5. 是否需要清理缓存。
验收结果
- 服务器目录独立。
- 部署脚本能进入正确仓库。
- build 产物完整。
- Nginx 能托管 clean URL。
- 上线后首页、文档、sitemap、robots 都可访问。