Circle CI+Nuxt+DreamHost部署内容数小时后消失问题求助
问题分析与解决方案
一、自动重建覆盖正确构建的可能原因及修复
- 分支拉取错误:自动重建的流水线可能拉取了错误分支(比如旧稳定分支而非主分支)。检查Circle CI定时任务配置,确认构建指定的分支与手动/CMS触发的分支一致;若定时任务用了固定分支,改成同步主分支的配置。
- 构建缓存未失效:Circle CI的缓存机制可能复用了旧的
node_modules或.nuxt目录,导致构建未生成最新内容。修改缓存配置,构建前添加清理缓存步骤,或把.md文件的哈希值加入缓存key,让内容变更时自动失效旧缓存。 - SFTP上传逻辑缺陷:自动重建的SFTP步骤可能未完整覆盖所有静态文件,或存在文件覆盖顺序错误。检查SFTP脚本,确保同步Nuxt生成的整个静态目录(如
dist),而非仅上传部分文件;同时确认上传时是新文件覆盖旧文件。 - Nuxt静态生成逻辑问题:自动构建时
nuxt generate命令可能未重新读取更新后的.md文件。给构建命令添加强制重生成参数(如nuxt generate --no-cache),或确认.md文件的存放路径在Nuxt的内容扫描范围内。
二、排查自动触发重建的来源
- 查看Circle CI定时任务:进入Circle CI项目的「Pipelines」页面,切换到「Scheduled」标签,查看所有定时触发流水线的时间、分支、job配置,是否和自动重建的时间匹配。
- 检查构建触发原因:在Circle CI构建历史里找到自动触发的记录,进入详情页查看「Triggered by」字段,会明确显示触发来源(比如「Scheduled pipeline」「Webhook from GitHub」「External trigger」等)。
- 排查仓库Webhook:进入代码仓库设置页的「Webhooks」选项,确认是否有第三方服务(如定时任务工具)通过webhook触发Circle CI构建;同时在Circle CI项目的「Settings」->「Triggers」页面,查看是否配置了外部触发源。
- 核对Netlify CMS配置:检查Netlify CMS的webhook设置,确认是否存在重复触发构建的配置,可通过构建历史的时间线,对比CMS保存内容的时间和自动构建的时间是否关联。
内容的提问来源于stack exchange,提问作者Efraim Dahl
相关产品推荐
相关产品推荐

