codeigniter 4 的路由缓存独立于页面和数据库缓存,必须执行 php spark cache:clear 彻底清除,它会清理 app/cache/route/ 下的编译路由文件;仅删 application/cache/ 无效,且需通过 php spark routes 验证是否生效。

CodeIgniter路由缓存清了还是旧的,说明你只清了页面输出缓存或数据库查询缓存,而没清掉CI4真正卡住路由映射的配置级缓存——它独立存在、不随页面缓存删除自动失效,必须用特定命令强制刷新。
确认是否真清了路由缓存
执行 php spark routes 命令,查看当前生效的全部路由列表。如果 /home 还没出现在输出里,说明路由缓存确实没更新。
这一步不能跳过:【CI4 的路由定义在 Routes.php 中,但运行时会编译成缓存文件存在 app/Cache/Route/ 目录下,直接删 application/cache/ 对它完全无效】。
彻底清除 CI4 路由缓存
在项目根目录(即 composer.json 所在目录)下运行以下命令:
php spark cache:clear
这条命令会清空所有缓存类型,包括路由缓存、视图缓存、配置缓存等。它比手动删文件更可靠,因为 CI4 的缓存路径可能因环境配置不同而变化。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
注意:执行后无需重启服务器,但浏览器需硬刷新(Ctrl+F5 或 Cmd+Shift+R),否则仍可能加载旧的 HTML 缓存。
验证新路由是否生效
第一步:运行 php spark routes,确认你的目标路由(如 /home → Home::index)已出现在列表中;
第二步:访问对应 URL,观察是否返回控制器实际输出内容,而非 404;
第三步:打开浏览器开发者工具 → Network 标签页 → 刷新页面 → 查看响应状态码是否为 200,且 Response 中包含你控制器里 echo 或 view 输出的内容。
如果前三步都通过,说明路由缓存已真正更新。若仍失败,请检查 Routes.php 中该路由是否写在 $routes->setAutoRoute(false) 之后、是否被通配符路由(如 $routes->get('(:any)', 'Errors::show404'))挡在了前面。










