laravel 缓存失效主因是未精准清除五类独立缓存:配置、路由、视图、应用及(已废弃的)优化类,需按 config:clear → route:clear → view:clear → cache:clear 顺序执行,并注意 laragon 下的文件权限与驱动配置。

缓存失效不是 Laravel 自己“坏了”,而是你清的不是它卡住的地方。Laragon 是本地开发环境,它本身不干预 Laravel 缓存逻辑,但它的 PHP、Apache/Nginx 和文件权限会影响缓存命令是否真正生效。关键不在工具,而在你清的是哪一层、用的什么驱动、有没有漏掉关键缓存项。
先搞清:Laravel 有五类缓存,各自独立
很多人只跑 php artisan cache:clear,结果配置还是旧的、路由 404、Blade 没更新——因为这命令只动「应用缓存」(比如 Cache::remember() 存的数据),其他四类完全不动:
-
配置缓存:
bootstrap/cache/config.php,由config:clear删除 -
路由缓存:
bootstrap/cache/routes-v7.php(版本号随 Laravel 变),靠route:clear清 -
视图缓存:
storage/framework/views/下的编译后 .php 文件,用view:clear -
应用缓存:
Cache::put()等写入的内容,对应cache:clear -
优化类缓存(已废弃):Laravel 9+ 起
optimize:clear不再存在,别再写进脚本
Laragon 下最常踩的坑:权限 + 驱动 + 顺序
Laragon 默认用 file 驱动存缓存,路径在 storage/framework/cache/data/。如果这个目录不可写,cache:clear 表面成功,实际删不掉文件——你得手动检查该目录权限(右键 → 属性 → 安全 → 当前用户要有“修改”权限)。
另外,config:clear 必须在 route:clear 之前运行。Laravel 13 对容器绑定做了重构,若先清路由缓存,它会尝试加载旧版配置结构,直接报错或 404。正确顺序是:
php artisan config:clearphp artisan route:clearphp artisan view:clearphp artisan cache:clear
别合并在一行用 &&,Laragon 的 CMD 或终端有时会跳过中间失败步骤,建议分步执行并观察每条命令返回的提示。
精准清除比全清更安全,尤其用 Redis 时
如果你在 Laragon 中配了 Redis(比如通过 Laragon 内置的 Redis Server),注意:cache:clear 默认清的是 cache.default 驱动,不一定是 Redis。先确认:
php artisan tinker → 输入 config('cache.default'),看返回值是 redis 还是 file。
如果是 redis,又只想清某类数据(比如用户相关缓存),别用全清:
- 清标签:
php artisan cache:clear --tags="user,auth" - 清指定驱动:
php artisan cache:clear --driver=redis - 代码里删单个键:
Cache::forget('user_profile_123')
盲目 cache:clear 可能顺手干掉 session(如果 Session 也走 cache 驱动),导致你在 Laragon 浏览器里突然登出。
浏览器访问清缓存?可以,但要加防护
Laragon 支持直接在浏览器调用 Artisan 命令,适合没开 SSH 的场景。在 routes/web.php 末尾加:
if (app()->environment('local')) {
Route::get('/clear-all', function () {
Artisan::call('config:clear');
Artisan::call('route:clear');
Artisan::call('view:clear');
Artisan::call('cache:clear');
return '✅ All caches cleared';
});
}
?>
然后访问 http://your-app.test/clear-all。注意:仅限 local 环境,且上线前务必删掉——暴露清缓存入口等于开放后门。











