cacheControlForCosObjectKey
按 COS 对象 Key 选择静态站 Cache-Control:HTML / 未哈希文件每次校验,带内容哈希的构建产物长期缓存。
函数签名
typescript
function cacheControlForCosObjectKey(objectKey: string): string参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
objectKey | string | 是 | COS 对象键(如 index.html、assets/index-UFvXYefc.js) |
返回值
| 类型 | 说明 |
|---|---|
string | Cache-Control 头。HTML 与未哈希文件为 no-cache, must-revalidate;文件名含 8 位及以上哈希时为 public, max-age=31536000, immutable |
常量见 @zengchaowu/shared/constants/cosObjectCacheControl。
工作原理
- 规范化 Key(反斜杠 →
/,去掉前导/)。 .html/.htm(以及空 Key)一律短缓存校验,避免入口页指向旧的 hashed chunk。- 文件名匹配 Vite/Nuxt 常见
name-<hash>.js/name.<hash>.css时视为不可变资源。 - 其余文件(
favicon.ico、校验文件、未哈希 SVG 等)与 HTML 相同,发版后可立刻被重新校验。
upload.cos 上传时会自动写入该头。CDN provision 将节点缓存设为跟随源站(关闭启发式缓存),因此首页 / 会带上 COS 上 index.html 的 Cache-Control。