Siteground托管静态HTML站点根域名页面内容更新延迟问题咨询
问题核心原因
- Siteground的动态缓存(Dynamic Cache)对根路径
/的目录请求和具体文件/index.html的缓存规则互相独立,手动清空全局Dynamic Cache往往只会清理已识别的静态文件缓存,不会触发根路径的缓存条目失效 - 站点默认
DirectoryIndex规则映射的根路径响应,会被服务器层额外设置更长的缓存TTL(生存时间),远高于单独的html文件缓存时长 - 仅清理浏览器缓存、刷新具体html文件,不会触发服务器层根路径缓存的失效
修复步骤
1. 单独刷新根路径缓存
进入Siteground的Site Tools后台,找到缓存->动态缓存->刷新单个URL,输入完整根域名(格式为https://www.domain.com/,末尾必须带斜杠)单独执行刷新,不要仅使用全局刷新功能,全局刷新经常会漏掉目录级的缓存条目2. 调整根路径缓存TTL
进入速度->缓存->设置页面,给根路径/单独设置缓存TTL为1小时以内,也可以统一设置所有HTML文件的缓存TTL为短时长,避免长期缓存旧内容3. 通过规则固定缓存策略
编辑站点根目录下的.htaccess文件,添加如下配置:
该规则会让根路径每次请求都校验资源是否更新,HTML文件默认缓存1小时,从根源避免出现长时间缓存旧内容的问题<IfModule mod_headers.c> # 根路径请求缓存策略 <FilesMatch "^$"> Header set Cache-Control "no-cache, no-store, must-revalidate" Header set Pragma "no-cache" Header set Expires 0 </FilesMatch> # 所有HTML文件统一缓存策略,可自行调整max-age数值(单位为秒) <FilesMatch "\.(html|htm)$"> Header set Cache-Control "public, max-age=3600, must-revalidate" </FilesMatch> </IfModule>4. 临时应急方案
如果需要内容立即生效,可以在缓存设置页面临时禁用动态缓存5-10分钟,等根路径旧缓存过期后再重新开启,即可强制加载最新内容
验证方法
修改完成后,可通过curl命令curl -I https://www.domain.com/查看响应头:
- 检查
Cache-Control字段是否和你设置的规则一致 - 检查
x-proxy-cache字段,如果值为MISS说明已经命中新内容,没有走旧缓存
内容的提问来源于stack exchange,提问作者unefemmegigi
相关产品推荐
相关产品推荐

