Laravel项目运行php artisan serve后修改PHP文件无更新如何解决
可能的原因及对应解决方法:
Laravel 视图缓存开启
Laravel 会默认缓存编译后的 Blade 视图文件,即使删除源 PHP/Blade 文件,只要缓存未清理,服务仍会读取已缓存的内容。执行命令清理视图缓存即可:php artisan view:clear
本地开发时可以在.env文件中新增配置VIEW_COMPILE_EXPIRE_ON_SAVE=true,让框架每次检测到文件变更自动重新编译视图。PHP OPcache 扩展缓存
如果你的环境开启了 OPcache 扩展,会将 PHP 脚本的预编译结果缓存到内存中,不会每次请求都读取磁盘上的最新文件。解决方法是编辑php.ini配置文件,修改以下参数后重启 PHP 服务:
opcache.enable = 0 opcache.enable_cli = 0
生产环境可以保留 OPcache 提升性能,本地开发建议关闭。
框架配置/路由缓存
如果之前执行过php artisan config:cache或php artisan route:cache生成了配置或路由缓存,后续修改对应文件都不会生效。分别执行命令清理对应缓存即可:php artisan config:clearphp artisan route:clear
本地开发阶段不要生成配置、路由缓存,仅在生产环境部署时执行即可。浏览器端缓存
浏览器可能会缓存静态页面响应,修改文件后刷新读取的是本地缓存。可以按Ctrl+Shift+R(Mac 为Cmd+Shift+R)强制刷新跳过缓存,也可以打开浏览器开发者工具,在「网络」面板勾选「禁用缓存」选项后刷新。文件路径不匹配
确认你修改的文件属于当前运行的项目目录,且路径正确:比如修改的视图文件是否在resources/views目录下,而非vendor目录下的第三方包文件,避免出现修改了A项目文件、实际运行的是B项目的情况。
内容的提问来源于stack exchange,提问作者user13713855

