Laravel缓存清理需分类型执行:config:clear清配置缓存(bootstrap/cache/config.php),route:clear清路由缓存文件,view:clear清编译视图,cache:clear仅清应用层缓存;混用或漏清会导致404、视图不更新等问题。
Laravel 的缓存清理不是“一键全清”就完事,不同缓存类型必须用对应命令,混用或漏掉某类会导致路由 404、视图不更新、配置未生效等看似“缓存没清干净”的问题。
php artisan config:clear 清的是什么?为什么改了 .env 还不生效?这个命令只清除 bootstrap/cache/config.php —— 即由 config:cache 生成的配置缓存文件。它和 .env 无关,但会影响 env() 的读取结果:Laravel 在启用配置缓存后,会跳过 .env 解析,直接从缓存数组取值。
.env 但页面没反应?先运行 php artisan config:clear,再运行 php artisan config:cache
config:cache,盲目执行反而掩盖环境差异问题config:cache 前确认 .env 已正确写入,否则缓存会固化错误配置php artisan route:clear 和 php artisan route:cache 的关系route:clear 只删除 bootstrap/cache/routes-v7.php(具体后缀随 Laravel 版本变化),它不会重建路由,只是为后续 route:cache 扫清障碍。生产环境启用了路由缓存,但你改了
routes/web.php 却没重新缓存,就会 404。
route:cache,它不支持闭包路由热更新php artisan route:clear && php artisan route:cache
RouteServiceProvider::loadRoutesFrom() 加载路由时,缓存行为不变,但需确保路径存在且可读php artisan view:clear 清除的是编译后的 Blade 模板Blade 模板每次请求都会被编译成 PHP 文件,存放在 storage/framework/views/ 下。这些文件不会自动刷新,尤其在 Docker 容器或 NFS 共享卷中,时间戳可能不准,导致改了 .blade.php 却看到旧内容。
php artisan view:clear,不是清浏览器缓存APP_DEBUG 设置,APP_DEBUG=false 时同样有效storage/framework/views/ 权限不对(如 www-data 不可写),view:clear 会静默失败,需检查目录权限和 SELinux 上下文(CentOS/RHEL)php artisan cache:clear 只清应用层缓存(如 Cache::put() 存的数据),不影响配置、路由、视图、事件、优化器等其他缓存。网上流传的“一键全清”脚本常误删 storage/framework/cache/data/ 下的文件,可能破坏 Session 或队列重试逻辑。
php artisan config:clear && php artisan route:clear && php artisan view:clear && php artisan cache:clear
rm -rf storage/framework/cache/*,Laravel 的缓存驱动(如 file、redis)结构不同,暴力删除可能导致数据不一致cache:clear 会清空整个 Redis DB,若多个项目共用同一 DB,会误伤其他服务缓存清理最常出问题的地方不在命令本身,而在执行时机和上下文:Docker 中的多阶段构建是否在正确 layer 清理、共享存储是否同步了 bootstrap/cache/、部署用户是否有 storage/ 写权限——这些比记命令更重要。