在 WordPress 主题开发中,经常遇到一个问题:修改了 CSS 或 JS 文件后,刷新页面看到的还是旧版本。这是因为浏览器缓存了这些文件。本文介绍如何彻底解决这个问题。

浏览器缓存的工作原理

当浏览器第一次请求一个资源时,服务器会返回资源内容,同时可能附带缓存头,告诉浏览器可以缓存这个资源多久。在缓存有效期内,浏览器会直接使用本地缓存,不再向服务器发起请求。

WordPress 中的版本控制方法

WordPress 的 wp_enqueue_style 和 wp_enqueue_script 函数都支持版本号参数。推荐使用主题版本号或文件修改时间作为版本号。

使用主题版本号的好处是统一管理,在 style.css 中定义主题版本,所有资源共用这个版本号。使用文件修改时间的好处是精确,每次文件修改后版本号自动更新。

强制刷新缓存的策略

在开发阶段,可以在 wp-config.php 中开启脚本调试模式,禁用资源合并和压缩。在用户端,可以在资源 URL 后添加查询参数强制刷新。

对于生产环境,建议使用文件版本号加内容哈希的方式,实现更精确的缓存控制。

配合服务器端缓存优化

除了浏览器缓存,还需要考虑服务器端的缓存策略。通过配置 Nginx 或 Apache 的缓存头,可以控制浏览器如何缓存资源。对于静态资源,建议设置较长的缓存时间,配合版本号实现更新时的自动失效。

解决缓存问题的实用技巧

在开发阶段频繁修改样式时,可以使用浏览器的开发者工具禁用缓存。对于紧急修复,可以手动在资源 URL 后添加随机参数。对于长期项目,建立资源版本管理的规范流程,避免手动修改版本号带来的遗漏。