为什么我的 HTML 文件改了但浏览器还是加载旧版本?

长孙楠楠 阅读 4

我改了首页的 HTML 内容,但刷新后浏览器还是显示旧的,强制刷新才生效。是不是缓存没配对?

我试过在 Nginx 里加了 Cache-Control,但好像没起作用。本地开发时用的是 live server,部署到线上就出问题了。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8" />
  <title>首页 - v2</title>
</head>
<body>
  <h1>这是更新后的标题!</h1>
</body>
</html>
我来解答 赞 0 收藏
二维码
手机扫码查看
1 条解答
皇甫宝玲
Nginx 对静态 HTML 默认会缓存,你需要在 location 里单独处理 HTML 文件,加上禁用缓存的响应头:

location ~* .html$ {
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
add_header Expires "0";
}


或者更简单粗暴——直接关掉 HTML 的缓存:

location / {
try_files $uri $uri/ =404;
}

# 针对 html 文件
location ~ .html$ {
expires -1;
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0";
}


改完记得 nginx -s reload 重载配置。线上环境对 HTML 设置不缓存或短缓存是比较常见的做法,省得每次发版都有人来问"为啥显示的还是旧页面"。
点赞
2026-03-12 22:01