您的位置:首页 >Laravel怎么删除缓存文件_Laravel怎么清理storage空间【总结】
发布于2026-04-28 阅读(0)
扫一扫,手机访问

说起清理Lara vel缓存,不少开发者第一反应就是敲下php artisan cache:clear。但执行完一看,storage目录纹丝不动,页面逻辑还是旧的,问题到底出在哪儿?今天咱们就把这事儿掰开揉碎了讲清楚。
这个命令的“职责范围”其实很明确:它只清理cache通道里的键值对数据。什么意思呢?比如你用Cache::put('key', 'val')存的东西,它就管。默认情况下,这个通道对应config/cache.php里default配置的驱动,可能是file,也可能是redis。
关键点来了:它通常不负责删除storage/framework/cache目录下的原始缓存文件。除非你用的正好是file驱动,并且没有配置额外的store,这时候它才会顺带扫描一下目录。所以,如果你执行完命令,发现storage/framework/cache/data/里还躺着一堆.bin文件,页面也没更新,别慌,这很正常。
遇到这种情况,建议按这个思路排查:
config('cache.default')返回的是什么,大部分项目不是file就是redis。redis,那cache:clear只会去删Redis里的key,跟磁盘文件压根没关系。--all选项:php artisan cache:clear --all。这些.bin文件,是Lara vel框架使用FileStore时生成的序列化缓存文件。cache:clear命令并不能保证把它们全部清理掉,尤其是当缓存过期时间设置得很长,或者某个进程卡住没触发清理机制的时候,这些文件就会一直堆积在那儿。
通常什么情况下需要手动清理它们?部署后视图没更新、修改了配置不生效,甚至storage目录磁盘空间告急的时候。
最直接粗暴也最有效的方法,就是手动删除整个目录:
rm -rf storage/framework/cache/*del /s /q storage\framework\cache\*这里有个细节要注意:别只删data/子目录,最好把cache/目录下的所有内容(包括data/、tags/、pool/等)都清掉。否则,残留的标签缓存可能会干扰后续的缓存写入。删完之后,记得确保Web服务器进程(比如nginx或php-fpm)有权限重新创建这些目录,顺手执行一下php artisan storage:link检查软链接也是个好习惯。
这两个地方严格来说不算“缓存”,但经常被误伤,一并清理。它们一个管日志记录,一个管Blade模板编译,可不能随便乱删。
它们体积过大会带来实际问题:views文件夹里要是积攒了几千个编译后的.php文件,每次file_exists()检查都会变慢;而log文件太大,则会拖慢tail -f查看和日志轮转的效率。
正确的处理姿势是这样的:
storage/logs/:建议配置日志自动轮转。可以用系统的Logrotate工具,或者在Lara vel的config/logging.php里使用daily通道。想手动清理一周前的日志,可以跑这条命令:find storage/logs -name "*.log" -mtime +7 -delete。storage/framework/views/:安全的方法是使用框架命令php artisan view:clear。它只清除已编译的Blade模板文件,不会动你的源代码。千万别直接rm -rf views/,否则用户第一次访问页面时,会明显感觉到卡顿,因为框架需要重新编译所有模板。删之前,可以用du -sh storage/framework/views看看它到底占了多大地方。如果你在Lara vel 9或更高版本的项目里执行这个命令,发现报错或者没反应,那就对了。因为这个命令在Lara vel 9中已被标记为废弃,到了Lara vel 10则被完全移除。它以前是用来清理bootstrap/cache/目录下的packages.php、services.php等优化文件的,现在这些工作交给了composer dump-autoload和框架自身来管理。
很多人踩的坑就是:看到一些老教程还在推荐这个命令,照搬之后终端却提示Command "optimize:clear" is not defined。
现在正确的替代操作,其实就两步:
composer dump-autoload来重新生成类的自动加载映射。php artisan config:clear、php artisan route:clear和php artisan view:clear来清理配置、路由和视图缓存。另外,如果你在bootstrap/cache/目录下看到了config.php这样的文件,说明之前运行过config:cache。在生产环境,建议保留这些缓存文件以提升性能;在开发环境,则可以删掉它们,让每次请求都读取最新的配置文件。当然,删除bootstrap/cache/全部内容后,首次请求会稍微慢一点,这是正常现象。
说到底,清理缓存本身不复杂,命令也就那么几条。真正的挑战在于,你得清楚按下回车之后,到底哪个服务的缓存被清了、哪个通道还连着Redis、会不会有哪段代码又在偷偷用file_put_contents往storage里写临时文件。理清了这些,storage空间的管理,才算真正上了道。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9