php think clear 默认不清理 runtime/view/ 和 runtime/route.php,需用 php think clear:template 和 php think route:clear 单独清除;模板缓存需确认 config/template.php 中 'cache' => true 且权限正确。

执行 php think clear 后模板不更新、路由仍 404,根本原因不是命令没运行,而是它默认不清理 runtime/view/ 和 runtime/route.php —— 这两个关键缓存必须手动或额外指令清除。
确认你清的是哪部分缓存
php think clear 默认只清这四个目录:cache/、log/、session/、trace/。它对模板编译文件(runtime/view/ 下的 PHP 文件)和路由缓存(runtime/route.php)完全无感。所以删完还是老样子,很正常。
- 要清模板缓存:TP6.1+ 用
php think clear:template - 要清路由缓存:必须单独执行
php think route:clear - 想一步到位:运行
php think clear -t && php think route:clear(注意-t是 TP6.1+ 才支持)
检查模板缓存是否真的在起作用
删了 runtime/view/ 却没变化?先确认模板缓存有没有启用。打开 config/template.php,看 'cache' => true 是否开启。如果设成了 false,那 runtime/view/ 根本不会生成任何文件,删它当然无效。
- 开发阶段建议设
'cache_time' => 0:缓存永不过期,但框架每次都会比对源模板修改时间,有改动就自动重编译 - 或者直接关掉:
'cache' => false,适合频繁改模板的调试期
手动删除时别漏层级、也别误删关键目录
删 runtime/view/ 必须删整个目录,不能只删 *.php 或某一层子目录——ThinkPHP 按模板路径哈希分目录(如 runtime/view/5a/8f/xxx.php),通配符根本匹配不全。
- Linux/macOS:运行
rm -rf runtime/view/ - Windows CMD:运行
rd /s /q runtime\view - 绝对不要顺手删
runtime/config/:里面是数据库连接、中间件等核心配置缓存,删了会导致Class not found或数据库 host 为 null
权限问题常被忽略
用 CLI 执行清理命令后,页面还是旧的?很可能是 Web 服务器(如 nginx 的 www-data)和你当前终端用户不是同一个,导致新生成的缓存文件权限不对,PHP 无法写入或读取。
- 统一用 Web 用户执行:例如
sudo -u www-data php think clear:template && sudo -u www-data php think route:clear - 或改目录权限:
chmod -R 775 runtime/,并加 setgid:chmod g+s runtime/,确保新文件继承组权限
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











