ThinkPHP6.0缓存需精准清理:①模板缓存删runtime/view/全部内容(保留空目录),路由缓存删runtime/route.php;②确认config/app.php中'app_debug'=>false,否则路由缓存不生效;③禁删runtime/config/等关键目录。

ThinkPHP6.0 项目缓存不清理,常导致模板修改不生效、新路由 404、配置变更无反应等问题。关键不是“清所有缓存”,而是**精准清理影响当前问题的缓存类型**——TP6.0 的缓存分多个独立模块,互不影响,必须按需清除。
一、最常用:模板编译缓存 + 路由缓存(改了视图或路由必清)
模板文件(如 view/index/index.html)修改后页面没变,或新增路由访问报 404,大概率是这两个缓存没同步清理。
- 模板缓存位置:runtime/view/ 目录下所有子目录和 .php 文件(保留 view/ 文件夹本身)
- 路由缓存位置:runtime/route.php(单个文件,直接删除即可)
- 推荐命令行一键操作(TP6.0):
php think clear --template && php think route:clear
二、开发调试时误开 APP_DEBUG 导致缓存失效
TP6.0 的路由缓存只在 app_debug = false 时生效。即使你删了 route.php,只要 config/app.php 中 'app_debug' => true,框架就跳过缓存、每次都重新解析路由——看起来“清了也没用”。
- 检查方式:控制器里加
dump(\think\App::debug());,输出 true 就说明没关 - .env 设置 APP_DEBUG=false 不一定生效,最终以 config/app.php 为准
- 上线前务必确认此项,CI/CD 构建漏改会导致路由全 404
三、其他常见缓存类型及清理方式
除模板和路由外,以下缓存也会影响行为,但一般无需每次手动清:
-
数据查询缓存:使用
Db::table()->cache()生成的缓存,默认走 file 驱动,存在 runtime/cache/;可执行php think clear全清,或代码中调用Cache::clear() - 配置缓存:runtime/config/ 下的文件,存储数据库、中间件等配置;切勿手动删除该目录,否则会报 Class not found 或数据库连接失败
-
请求缓存(HTTP 层):由
think\middleware\CheckRequestCache中间件控制,缓存文件在 runtime/httpcache/,可通过php think clear --http清理(TP6.1+)
四、无命令行权限时的手动清理要点
例如宝塔面板或共享主机环境,无法运行 php think 命令:
- 进 runtime/ 目录,只删:
→ view/ 下全部内容(留空文件夹)
→ route.php 文件
→ httpcache/ 整个文件夹(如有) - 严禁删除:config/、log/、temp/ 目录——这些不是缓存,删了会中断服务
- 删完后首次访问会稍慢(重建缓存),属正常现象
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











