Shopify CLI 与 Headless

Oxygen 部署显示成功但线上还是旧代码怎么办

现象#

CI 日志显示 deployment 成功,后台 Deployments 列表时间也是刚刚,线上却仍渲染上一个 commit 的文案;本地 build 出来的产物里已经是新文案。

原因#

  • CI 复用了上一次的构建缓存,dist 未清空,旧 chunk 一起被打进产物
  • --assets-dir 指到了缓存目录,上传的是上回的 client 文件
  • deploy 复用了同一条 commit 的既有 deployment,没有生成新版本
  • 浏览器或中间代理缓存了旧 HTML 入口,assets 里的 hash 文件没被引用

处理步骤#

  1. 构建前清目录:rm -rf dist .vite node_modules/.vite,或关掉缓存重跑
  2. 核对 --assets-dir dist/client --worker-dir dist/server 是否与实际产物一致
  3. 部署时带标记:--metadata-description $GIT_SHA,后台即可对上具体提交
  4. 把 deploy 输出的 deployment id 与后台最新一条比对,确认不是复用
  5. 线上取一次引用:curl -s https://shop.com/ | grep -o 'assets/[^"]*'

验收标准#

线上 HTML 引用的 assets 哈希与本地构建产物一致,页面文案为新提交的内容。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。