Oxygen 部署显示成功但线上还是旧代码怎么办
现象#
CI 日志显示 deployment 成功,后台 Deployments 列表时间也是刚刚,线上却仍渲染上一个 commit 的文案;本地 build 出来的产物里已经是新文案。
原因#
- CI 复用了上一次的构建缓存,dist 未清空,旧 chunk 一起被打进产物
- --assets-dir 指到了缓存目录,上传的是上回的 client 文件
- deploy 复用了同一条 commit 的既有 deployment,没有生成新版本
- 浏览器或中间代理缓存了旧 HTML 入口,assets 里的 hash 文件没被引用
处理步骤#
- 构建前清目录:
rm -rf dist .vite node_modules/.vite,或关掉缓存重跑 - 核对
--assets-dir dist/client --worker-dir dist/server是否与实际产物一致 - 部署时带标记:
--metadata-description $GIT_SHA,后台即可对上具体提交 - 把 deploy 输出的 deployment id 与后台最新一条比对,确认不是复用
- 线上取一次引用:
curl -s https://shop.com/ | grep -o 'assets/[^"]*'
验收标准#
线上 HTML 引用的 assets 哈希与本地构建产物一致,页面文案为新提交的内容。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。