Laravel 5.6反复报错:无法找到views/layouts.html.php资源求助
views/layouts.html.php的问题 这个问题我之前帮人排查过,本质是Laravel依赖的Whoops错误处理工具找不到它自己的资源文件,完全不用重装框架,试试下面几个步骤就能解决:
确认缺失的核心文件是否存在
直接前往你的项目路径/var/www/{domain}/vendor/filp/whoops/Resources/views/layouts/,查看是否有html.php文件。报错里写的views/layouts.html.php其实是路径解析时的小偏差,实际需要的是html.php这个文件——如果它丢了,就会触发这个找不到资源的错误。重新安装Whoops依赖补全文件
如果文件确实不存在,不用动Laravel核心,只需要单独修复这个依赖就行。在项目根目录运行以下命令:composer reinstall filp/whoops或者用更稳妥的方式更新依赖(确保版本兼容):
composer require filp/whoops --update-with-dependencies这会自动补全Whoops缺失的所有资源文件,包括你需要的布局文件。
检查错误处理配置是否被篡改
先打开config/app.php确认debug选项是否设为true(只有开启debug模式时,Laravel才会用Whoops展示错误页面);再看看app/Exceptions/Handler.php里的render方法有没有自定义的错误处理逻辑——如果不小心覆盖了Whoops的默认加载逻辑,也可能导致资源找不到。清理Laravel缓存
有时候缓存会引发各种奇怪的加载问题,试试清理各类缓存:php artisan cache:clear php artisan config:clear php artisan view:clear检查文件权限
确保web服务器的运行用户(比如常见的www-data)能读取Whoops的资源目录,运行以下命令调整权限:chmod -R 755 vendor/filp/whoops/Resources如果是用户组归属问题,再调整归属:
chown -R www-data:www-data vendor/filp/whoops/Resources
内容的提问来源于stack exchange,提问作者Kankuro

