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 等于关掉缓存
处理步骤#
- 按数据分级:商品详情用
{cache: Cache.short()},菜单与政策页用Cache.long() - 价格、库存、购物车查询一律
CacheNone(),或把 maxAge 压到 60 秒内 - 把市场上下文写进变量:
country: $country, language: $language - 需要精细控制时写
CacheCustom({maxAge: 300, staleWhileRevalidate: 60}) - 用
curl -I看 cache-control 与 age 是否匹配设置
验收标准#
改价后一分钟内商品页返回新价,响应头的 max-age 与代码一致,首页不再每次回源。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。