Skip to content

cacheControlForCosObjectKey

按 COS 对象 Key 选择静态站 Cache-Control:HTML / 未哈希文件每次校验,带内容哈希的构建产物长期缓存。

函数签名

typescript
function cacheControlForCosObjectKey(objectKey: string): string

参数

参数名类型必填说明
objectKeystringCOS 对象键(如 index.htmlassets/index-UFvXYefc.js

返回值

类型说明
stringCache-Control 头。HTML 与未哈希文件为 no-cache, must-revalidate;文件名含 8 位及以上哈希时为 public, max-age=31536000, immutable

常量见 @zengchaowu/shared/constants/cosObjectCacheControl

工作原理

  1. 规范化 Key(反斜杠 → /,去掉前导 /)。
  2. .html / .htm(以及空 Key)一律短缓存校验,避免入口页指向旧的 hashed chunk。
  3. 文件名匹配 Vite/Nuxt 常见 name-<hash>.js / name.<hash>.css 时视为不可变资源。
  4. 其余文件(favicon.ico、校验文件、未哈希 SVG 等)与 HTML 相同,发版后可立刻被重新校验。

upload.cos 上传时会自动写入该头。CDN provision 将节点缓存设为跟随源站(关闭启发式缓存),因此首页 / 会带上 COS 上 index.htmlCache-Control