Shopify CLI 与 Headless

CacheShort 与 CacheLong 到底该选哪个

现象#

后台改价后 Hydrogen 商品页仍显示旧价,响应头是 cache-control: public, max-age=3600;换成 CacheNone 后 TTFB 从 120ms 涨到 600ms,每次请求都打 Storefront API。

原因#

  • 查询级缓存由第二个参数 strategy 决定,不传就走默认 CacheShort,还会叠加页面级缓存
  • CacheLong 默认一小时以上的 s-maxage,价格与库存这类高频字段明显过期
  • 缓存键只由查询文本与变量组成,国家和语言没进变量就会在不同市场间串数据
  • 2026-10 把 CacheLong() 改成 Cache.long(),旧写法拿到 undefined 等于关掉缓存

处理步骤#

  1. 按数据分级:商品详情用 {cache: Cache.short()},菜单与政策页用 Cache.long()
  2. 价格、库存、购物车查询一律 CacheNone(),或把 maxAge 压到 60 秒内
  3. 把市场上下文写进变量:country: $country, language: $language
  4. 需要精细控制时写 CacheCustom({maxAge: 300, staleWhileRevalidate: 60})
  5. 用 curl -I 看 cache-control 与 age 是否匹配设置

验收标准#

改价后一分钟内商品页返回新价,响应头的 max-age 与代码一致,首页不再每次回源。

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