thinkphp 6.1 页面未更新主因是缓存未清对层:php think clear 不清理模板(runtime/view/)和路由(runtime/route.php),需执行 php think clear -t && php think route:clear 或手动删除对应目录及文件,切勿误删 runtime/config/;同时排查 nginx、opcache、浏览器/cdn 等外层缓存。

页面还是旧的,大概率不是缓存没清,而是没清对地方、没清干净,或者根本没进框架就被外层缓存拦住了。
先确认你清的是哪一层缓存
ThinkPHP 6.1 的缓存分好几层,彼此独立:
- 模板编译缓存 → 存在
runtime/view/目录下(PHP 文件) - 路由缓存 → 单个文件
runtime/route.php - 普通数据缓存 →
runtime/cache/下的.php文件 - 配置缓存 →
runtime/config/(千万别删!)
php think clear 默认只清 cache/、log/、session/、trace/,完全不碰 view/ 和 route.php。所以光跑这句命令,模板改了照样不生效,新路由照样 404。
立刻见效的清理方式(推荐命令行)
进入项目根目录,一次性清模板 + 路由:
php think clear -t && php think route:clear
注意:-t 参数仅 TP6.1+ 有效;TP6.0 请用 --template。执行前先运行 php think version 确认版本,避免命令报错。
如果命令不可用(比如没 CLI 权限),手动删更可靠
- 删除整个
runtime/view/目录(不是只删.php文件,子目录里的哈希文件必须一并清掉) - 删除
runtime/route.php文件(就这一个,别手抖删成runtime/route/目录)
⚠️ 切勿删除 runtime/config/ —— 里面是数据库连接、中间件等关键配置,删了会直接报 Class not found 或 database host is null。
检查是否被外层缓存挡住
就算 TP 层全清了,页面还旧,就得往外看:
- Nginx 的
fastcgi_cache或自定义proxy_cache:宝塔“全清Nginx缓存”按钮不管它,得手动清/www/server/nginx/cache/或重启 PHP - PHP OPcache:改了路由或模板文件但字节码还在内存里,执行
opcache_reset()或service php-fpm restart - 浏览器或 CDN 缓存:带跳转的页面(如登录后跳首页)容易被 301 缓存,换无痕窗口测试,或加时间戳参数(如
?t=123)
开发阶段让改动秒生效(一劳永逸)
别依赖手动清,改配置更省心:
- 在
config/template.php中设'cache' => false,彻底禁用模板缓存 - 或保留缓存但强制校验源文件:
'cache_time' => 0(整数 0,不是字符串) - 确保
config/app.php中'app_route' => true是布尔值true,不是"true"字符串
不复杂但容易忽略
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











