部署成功后样式为什么没更新?

GitHub Action 已经成功执行,域名也能正常访问,但页面样式没有更新,表现得像“部署没生效”。

现象

GitHub Action 已经成功执行,域名也能正常访问,但页面样式没有更新,表现得像“部署没生效”。

原因

不是部署失败,而是浏览器缓存了旧的静态资源。线上返回的 HTML 实际已经是新版本,但 /style.css 被 Nginx 以 Cache-Control: public, max-age=604800, immutable 强缓存了一周,浏览器继续使用旧 CSS,所以页面看起来没变化。

解决方法

给静态资源加版本号,强制浏览器重新拉取新文件。比如把 style.css、favicon.png、文章页相关 CSS 改成带查询参数的形式,例如 style.css?v=时间戳。这样每次部署后资源 URL 都会变化,浏览器不会继续使用旧缓存。