页面刷新没变化大概率是缓存生效了;thinkphp3.2在部署模式下默认启用编译缓存、模板缓存和html静态缓存,开发时若未关闭app_debug或未清空runtime目录,修改代码将无法即时体现。

页面刷新没变化,大概率是缓存生效了。ThinkPHP3.2 默认在部署模式下会启用多种缓存机制,包括编译缓存、模板缓存、HTML静态缓存等,开发阶段若未及时关闭,就会导致改了代码却看不到效果。
确认是否处于调试模式
这是最基础也最关键的一步。TP3.2 的缓存行为严格受 APP_DEBUG 控制:
- 只要入口文件(如 index.php)中定义了
define('APP_DEBUG', true);,模板缓存、字段缓存、日志记录等功能都会自动关闭,改完模板或配置可立即生效; - 若设为
false或未定义,默认进入部署模式,所有缓存均可能激活; - 检查时注意:不能只看注释,要确认该行代码真实执行且未被其他逻辑覆盖。
快速清空 Runtime 缓存目录
即使关闭了调试模式,手动清空缓存仍是见效最快的排查手段。TP3.2 的运行时缓存集中存放在 Application/Runtime/ 目录下:
-
Temp/:存放模板编译后的 PHP 文件(如
xxx~runtime.php),清空后模板修改立刻可见; -
Cache/:存放数据缓存(
S()写入的内容)、查询缓存(cache())等; - Logs/:日志不影响页面展示,但清空有助于排除干扰;
- 直接删除整个 Runtime 文件夹(或保留空文件夹),框架会在下次请求时重建必要结构。
临时禁用 HTML 静态缓存
如果开启了静态页面缓存('HTML_CACHE_ON' => true),浏览器可能加载的是磁盘上的 .html 文件,而非动态渲染结果:
- 在项目配置(如 Conf/config.php)中临时注释或改为:
'HTML_CACHE_ON' => false; - 也可在控制器中动态关闭:
C('HTML_CACHE_ON', false);,建议加在易触发的首页或测试方法开头; - 注意:404 等特殊页面若被静态缓存,会导致状态码错误,必须提前关闭缓存再返回。
检查是否误启了编译缓存
编译缓存(common~runtime.php)在部署模式下自动生成,合并核心类与函数库,提升性能但也阻碍热更新:
- 该文件位于 Application/Runtime/common~runtime.php,存在即表示已启用;
- 若你正开发调试,应确保
APP_DEBUG = true,此时框架根本不会生成它; - 若已生成且 APP_DEBUG 关闭,删掉它并保持 APP_DEBUG = true,后续请求不会再重建。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











