要让thinkphp文件缓存立即生效,需精准删除:①模板缓存(runtime/view/目录);②路由缓存(runtime/route.php文件);③数据缓存(用php think clear --cache或手动清runtime/cache/);开发时可设template.cache=false禁用模板缓存。

要让 ThinkPHP 文件缓存立即生效,关键不是“删得快”,而是“删得准”——删对位置、删对类型,改完代码才能立刻看到效果。模板不更新、路由 404、数据查不到旧值……多数情况都卡在缓存没清干净。
精准删除模板编译缓存(改了 .html 或 .php 模板后页面不变)
TP6.1 把模板编译成 PHP 文件存在 runtime/view/ 下,路径按哈希分多级,人工找文件基本不可能。
- 直接删除整个 runtime/view/ 目录(保留空的 view 文件夹)
- Linux/macOS 执行:
rm -rf runtime/view/ - Windows CMD 执行:
rd /s /q runtime\view - 首次访问会稍慢(重新编译),但不会报错,改完模板立刻生效
必须删除路由缓存文件(新增或改了 route.php 后访问 404)
路由缓存是单个 PHP 文件:runtime/route.php,不是目录,删错地方就白忙活。
- 找到项目根目录下的 runtime/route.php,直接删除
- 千万别删 runtime/config/ —— 里面是数据库、中间件等核心配置,删了会报 Class not found 或连接失败
- 删掉后第一次请求自动重建,不影响后续运行
清理数据缓存(Cache::set() 写入的内容没更新)
文件驱动的数据缓存默认存在 runtime/cache/,但 Cache::clear() 在 TP5/6 中只清内存索引,不删磁盘文件。
- 推荐用命令行一键清理:
php think clear --cache(TP5.1.14+ 和 TP6 均支持) - 手动清理:递归删除 runtime/cache/ 全部内容(含子目录,如 7d/7d8a/)
- 若用了标签缓存(
Cache::tag('user')->set()),可用Cache::clear('user')精准清除
开发阶段建议关掉模板缓存(一劳永逸)
频繁删缓存太折腾?不如让模板实时响应修改。
- 打开 config/template.php,设
'cache' => false,彻底禁用模板缓存 - 或设
'cache_time' => 0,TP6 会每次对比模板文件修改时间,有变动就重编译 - 注意:线上环境请勿关闭,会影响性能
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











