外观
3.3 缓存刷新方法
约 495 字
缓存静态资源
本页对应「三、操作步骤」的 3.3,完成缓存刷新方法。返回上级:静态资源与缓存配置说明。
前置条件
- 3.1 与 3.2 已完成,缓存规则已在响应头中生效。
- 如使用 CDN,已取得控制台刷新权限或 API 令牌。
- 新版本产物已构建完成,文件名含新的内容指纹。
操作步骤
- 发布新版本并原子切换软链。
STAMP=$(date +%Y%m%d%H%M)
sudo -u deploy mkdir -p /srv/axis/www/releases/$STAMP
sudo rsync -a --delete dist/ /srv/axis/www/releases/$STAMP/
sudo -u deploy ln -sfn /srv/axis/www/releases/$STAMP /srv/axis/www/current
ls -l /srv/axis/www/current- 重载 Nginx,使新 root 立即生效。
sudo nginx -t && sudo systemctl reload nginx刷新 CDN:先提交 URL 刷新,覆盖
https://example.com/与https://example.com/index.html;再按需提交目录刷新,覆盖https://example.com/assets/。目录刷新通常有配额限制,仅在同名文件被覆盖时使用。通过接口触发刷新,便于脚本化执行。
curl -sS -X POST https://cdn-api.example.com/purge \
-H 'Authorization: Bearer CHANGE_ME_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"urls":["https://example.com/","https://example.com/index.html"]}'- 逐层验证是否已回源。
curl -sSI https://example.com/index.html | grep -i -E 'x-cache|age|etag'
curl -sS https://example.com/index.html | grep -o 'app\.[a-z0-9]\{6\}\.js' | head -n 1结果确认
- 响应头
x-cache为 MISS 或Age为 0,说明边缘已回源。 - HTML 中引用的资源指纹已变为新版本文件名。
- 浏览器强制刷新后页面与新版本一致,无新旧资源混用。
- CDN 控制台的刷新任务显示完成,无失败条目。
注意事项
- 先刷新 HTML 再刷新资源目录,顺序颠倒会让用户拿到新资源配旧页面。
- 目录刷新消耗配额较多,日常只刷新实际变更的 URL。
- 刷新后仍为旧内容时,按浏览器、CDN、反向代理三层逐层验证。
- 刷新令牌属凭据,不要写入前端代码或公开仓库。