Laravel 8站点修改PHP代码后变更不生效问题求助
解决方案
1. 调整PHP OPcache配置
Windows环境下PHP 7.4默认开启的OPcache扩展如果关闭了文件时间戳校验,会导致修改后的PHP文件不被重新加载。
- 打开
php.ini配置文件,修改以下参数:; 开发环境直接关闭OPcache即可 opcache.enable = 0 opcache.enable_cli = 0 - 修改完成后重启你的PHP运行服务(如Apache、Nginx绑定的PHP-FPM、Laragon/XAMPP的PHP服务)即可。
如果需要保留OPcache能力,可改为开启实时校验:
opcache.validate_timestamps = 1 opcache.revalidate_freq = 1
2. 彻底清除Laravel全量缓存
单独清理分类缓存可能存在遗漏,执行全量缓存清理命令:
php artisan optimize:clear
再手动删除bootstrap/cache目录下除.gitignore外的所有文件,避免残留预编译的配置、路由缓存。
3. 修复Windows文件系统变更监听异常
必须重启VSCode才生效的现象通常和Windows文件变更通知异常相关:
- 若你使用WSL2运行PHP服务,不要将项目放在Windows磁盘分区中,移动到WSL的Linux文件系统目录内即可解决跨系统文件变更通知无法同步的问题。
- 检查VSCode设置,关闭「延迟自动保存」,改为保存后立即写入磁盘。
- 确认你的PHP服务运行进程拥有项目目录的读写权限。
4. 解除前端构建工具的请求代理绑定
修改PHP文件也需要执行npm run watch才生效,大概率是项目启用了BrowserSync之类的代理热更新工具,所有请求都走前端构建工具的代理服务,只有启动监听后才会同步后端变更:
- 打开项目根目录的
webpack.mix.js,注释掉mix.browserSync()相关配置。 - 开发阶段直接访问Laravel原生启动的服务地址(如
http://127.0.0.1:8000),无需走前端代理地址。
内容的提问来源于stack exchange,提问作者Jean-marc
相关产品推荐
相关产品推荐

