You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel视图缓存持续干扰:修改Blade文件后页面不更新求助

解决Laravel Blade视图缓存不更新的问题

一、开发环境临时禁用视图缓存

要是开发期间不想被视图缓存干扰,直接用这两种方式:

  • 打开.env文件,将APP_DEBUG设为true。Laravel在调试模式下会自动检测Blade文件的修改,自动重新编译缓存,不会复用旧缓存。之前设为false的话改回来即可。
  • 直接修改config/view.php里的cache配置项为false:
    'cache' => false,
    
    改完立刻生效,开发完成后记得改回默认的env('VIEW_CACHE', true),避免影响生产环境性能。

二、强制清理顽固缓存

如果清完缓存后又自动生成,试试这些彻底清理的方法:

  • 用Artisan命令全量清除缓存:
    php artisan view:clear
    php artisan cache:clear
    php artisan config:clear
    
  • 手动删除缓存目录:直接清空storage/framework/views下的所有文件,命令行可执行:
    rm -rf storage/framework/views/*
    
    Windows用户直接打开对应文件夹删除所有文件即可。

三、排查缓存反复生成的根源

如果以上操作后问题依旧,大概率是以下原因导致:

  • 目录权限异常:storage/framework/views的权限不足,导致Laravel无法写入新的编译缓存,只能复用旧缓存。给目录设置正确权限:
    chmod -R 755 storage/framework/views
    chown -R www-data:www-data storage/framework/views # 对应你的Web服务运行用户,比如apache/www-data
    
  • PHP OPcache缓存未更新:开启OPcache后,它会缓存编译后的视图PHP文件。修改php.ini里的OPcache配置:
    opcache.enable=0 # 临时关闭,开发完成后再开启
    # 或者保留开启,设置自动校验文件变化
    opcache.validate_timestamps=1
    opcache.revalidate_freq=2
    
    改完重启PHP服务,OPcache就会定期检查文件更新。
  • 路由缓存未清理:如果使用了路由缓存,可能导致视图中的路由引用未同步更新,顺便清理路由缓存:
    php artisan route:clear
    

四、生产环境注意事项

如果是生产环境遇到该问题,不要直接禁用视图缓存(会影响性能),每次部署完成后执行以下命令,强制重新编译所有视图缓存:

php artisan view:cache

内容的提问来源于stack exchange,提问作者Interestn_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:40:12