Shopify CLI 与 Headless

shopify theme publish 后前台还是旧样式怎么办

现象#

shopify theme publish 返回成功,后台主题列表也显示已发布,但前台 HTML 仍是旧版,view-source 里 theme.css 的版本串与本地不一致,强制刷新也没有变化。

原因#

  • 主题资源由边缘节点按 URL 缓存,文件名不变时会继续返回上一次的内容
  • publish 只切换店铺的 published theme 指针,已缓存的页面 HTML 不会被主动失效
  • 同名主题在库里有多个副本,publish 选中的是旧 ID,看列表容易误判
  • 主题里用 asset_url 但文件名不带版本号,CDN 的缓存键始终相同

处理步骤#

  1. 确认线上跑的是哪套代码:shopify theme list 看 live 行的 ID 与名称
  2. 带随机参数取一次:curl -s 'https://shop.com/?v=1' | grep theme.css
  3. 给静态资源加版本串:{{ 'theme.css' | asset_url }}?v={{ settings.version }}
  4. 发布后主动预热首页与商品页,各 curl -I https://shop.com/ 一次
  5. 仍不生效就改主题名重新 publish 触发同步,再比对 assets/theme.js 的哈希

验收标准#

curl -s https://shop.com/ | grep -o 'theme.css[^"]*' 返回新版本串,前台样式与本地一致。

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