thinkphp 3.2 中关闭模板缓存需将 'tmpl_cache_on' => false 写入配置文件(如 application/common/conf/config.php),并清空 runtime/cache/ 目录;开发时更推荐开启 app_debug 模式,自动禁用所有缓存。

在 ThinkPHP 3.2 中,模板缓存默认是开启的,目的是提升运行效率。但开发阶段修改了 HTML 模板却看不到效果,基本就是模板缓存没关 —— 关键就在 _TMPL_CACHE_ON 这个配置项。
直接在配置文件中关闭模板缓存
TP3.2 的模板缓存开关由 'TMPL_CACHE_ON' => true 控制(注意:不是 _TMPL_CACHE_ON,下划线是文档或误写常见混淆点,实际配置键名无开头下划线)。关闭方法很简单:
- 找到你的模块配置文件,通常是
Application/Home/Conf/config.php或公共配置Application/Common/Conf/config.php - 添加或修改配置项:
'TMPL_CACHE_ON' => false, - 确保该配置在 return 数组内,且语法正确(逗号不能漏,引号要英文)
确认模板缓存路径和生效范围
模板缓存文件默认生成在 Runtime/Cache/模块名/ 目录下,以 .php 文件形式存在。关闭后每次访问都会重新编译模板,所以:
- 必须清空一次已有缓存,否则旧缓存仍可能被读取:手动删除
Runtime/Cache/整个目录即可 - 该配置只对当前模块或配置作用域生效;若多个模块都需要关闭,建议统一写在
Common/Conf/config.php - 如果使用了独立的视图配置(如
View模块),也可在Conf/view.php中设置相同选项
更省事的方式:开启调试模式
如果你处于开发环境,最推荐的做法是全局启用调试模式,它会自动禁用所有缓存(包括模板、字段、行为、静态等):
- 在入口文件
index.php顶部,确保有:define('APP_DEBUG', true); - 同时检查
Application/Common/Conf/config.php中没有覆盖为false - 开启后无需单独配
TMPL_CACHE_ON,框架自动处理
验证是否真正关闭
改完配置别急着信,动手验证一下:
- 修改一个 .html 模板文件,比如加一行
<p>test-=time()?></p> - 刷新页面,看时间戳是否实时变化
- 再检查
Runtime/Cache/下对应模块目录是否不再生成新的 .php 缓存文件











