Magento 2 清缓存后页面没有变化,并不代表缓存命令无效。一个页面可能同时经过 Magento Full Page Cache、Varnish、CDN、浏览器缓存和静态文件缓存。先判断旧的是 HTML 还是 CSS、JavaScript、图片,再处理对应层。
先区分 clean 和 flush
bin/magento cache:status
bin/magento cache:clean full_page block_html layout
bin/magento cache:flush
cache:clean 清理 Magento 对应缓存类型的记录;cache:flush 会清空当前缓存存储,可能影响共享同一 Redis 实例的其他应用。生产环境应优先精准 clean,不要把 flush 当成固定发布步骤。
判断旧的是 HTML 还是静态文件
- 页面文字和价格旧:检查 Full Page Cache、Varnish 和 CDN。
- HTML 已更新但样式旧:检查静态资源 URL、部署版本和浏览器缓存。
- 商品图片旧:检查媒体缓存目录及 CDN 图片缓存。
- 只有登录用户正常或异常:检查 private content 与客户段缓存。
可用浏览器 Network 查看 HTML 响应和 CSS 文件的实际内容,并比较无痕窗口。不要只按 Ctrl+F5 后就认定服务器缓存正常。
检查 Varnish 和反向代理
使用 Varnish 时,Magento 清理缓存需要正确的后端主机配置和 purge 通路。如果应用缓存已清理,但反向代理仍返回旧 HTML,应检查响应头、Varnish 日志以及缓存失效请求是否到达。
bin/magento config:show system/full_page_cache/caching_application
bin/magento config:show system/full_page_cache/varnish/access_list
不要直接在文章或业务代码中写死清空全部 Varnish 的命令。应通过缓存标签让单个商品、分类或 CMS 页面精准失效。
CSS 和 JavaScript 还是旧版本
bin/magento deploy:mode:show
bin/magento setup:static-content:deploy -f zh_Hans_CN en_US
bin/magento cache:clean config full_page
生产模式发布静态文件前,应先进入维护窗口并按站点实际 locale 与主题部署。不要在访问高峰删除整个 pub/static。保留 .htaccess,并确认 Web 用户能读取新文件。
CDN 与浏览器缓存
如果源站已经返回新内容,但 CDN 节点仍旧,按具体 URL 或缓存标签刷新 CDN。若只有某台电脑异常,检查 Service Worker、浏览器磁盘缓存和本地代理。
验证方法
- 给目标模板加入一个临时版本标识。
- 分别访问源站、Varnish 和公开域名。
- 核对 HTML 与静态文件请求的响应内容和缓存头。
- 删除临时标识,再做一次精准失效。
正确的修复结果是相关页面更新、不相关页面仍保持缓存命中,而不是每次修改都清空全站缓存。

