必须先清动态缓存再清静态缓存:第一步用php think cache:clear清除redis/file等动态数据,第二步用php think clear --all清空runtime下view/、route.php、config/等静态产物,顺序颠倒会导致白屏、404或配置丢失。

ThinkPHP6静态缓存(如编译后模板、路由缓存、配置缓存)和动态缓存(如Cache::set写入的运行时数据)混存于runtime目录但归属不同机制,清理时若顺序错乱会导致页面白屏、404或配置丢失——这不是缓存没清干净,而是清得太早或太晚。
先清动态缓存,再清静态缓存
第一步:执行 php think cache:clear 或 php think clear 清除所有动态缓存驱动中的数据(Redis/File缓存内容)。
第二步:执行 php think clear --all 彻底清空 runtime/ 目录下所有文件缓存结构,包括 view/、route.php、config/ 等静态产物。
这一步不能颠倒。如果先删 runtime/,框架启动时会尝试重建路由和配置缓存,但此时动态缓存(如数据库连接池配置、中间件参数)可能仍残留旧值,导致重建失败;而先清动态缓存,能确保框架重启时读取的是最新配置和代码逻辑,再重建静态缓存才可靠。
只清静态缓存时必须分层操作
方法一:模板缓存单独清
php think clear -t —— 仅清 runtime/view/ 下编译后的模板文件,不影响路由与配置。
方法二:路由缓存强制重生成
php think route:clear → php think route:build —— 先删 runtime/route.php,再立即重建,避免首次访问卡顿或 404。
方法三:配置缓存安全刷新
php think optimize:config —— 此命令不删除 runtime/config/,而是重新解析 config/ 目录下所有 PHP 文件并生成优化版,【比直接删 runtime/config/ 更安全】,防止因配置语法错误导致整个应用无法启动。
生产环境上线前的标准清理链路
① 执行 php think clear -f(仅清文件类缓存,跳过 Redis 等外部驱动)
② 执行 php think optimize:route(生成新路由缓存,不删旧文件)
③ 执行 php think optimize:config(生成新配置缓存,保留原始 config/ 目录结构)
④ 手动确认 runtime/view/ 是否需清:若模板引擎启用了 compile_check 且版本未变,可跳过 -t;若改了 layout 或 extends 关系,必须加 -t 否则页面仍显示旧结构。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











