Laravel项目迁移后报错:Error in exception handler: View [errors.error] not found
刚迁移完就碰到这个错误?别慌,这大概率是视图文件缺失、缓存残留或者权限问题导致的,给你几个排查和解决的步骤:
先检查错误视图文件是否存在
报错里提到的errors.error对应的文件路径是resources/views/errors/error.blade.php,先去这个路径看看文件有没有丢,或者是不是文件名写错了——尤其是新服务器如果是Linux系统,它区分大小写,要是原来的服务器是Windows,文件名是Error.blade.php,到Linux下就会找不到,得改成全小写的error.blade.php才行。如果文件确实不存在,直接创建一个就行,哪怕是个简单的错误提示页面都能先解决这个报错。清除Laravel各类缓存
迁移过程中很可能残留了旧服务器的缓存文件,运行下面几个命令清一清:php artisan cache:clear php artisan view:clear php artisan config:clear php artisan route:clear这些命令会分别清除应用缓存、视图编译缓存、配置缓存和路由缓存,清完之后再试试访问。
检查目录权限
Laravel需要对storage/和bootstrap/cache/目录有写入权限来生成缓存和日志文件,迁移后权限可能没同步过来。可以用这两个命令调整权限:chmod -R 755 storage bootstrap/cache chown -R www-data:www-data storage bootstrap/cache第二个命令里的
www-data是常见的Web服务器用户,要是你的服务器用的是其他用户(比如apache),替换成对应的就行。确认视图配置是否正确
要是你的项目用了自定义视图路径,打开config/view.php检查paths数组里有没有包含resources/views目录,确保Laravel能找到你的视图文件。另外也可以去app/Exceptions/Handler.php里看看,是不是自定义异常处理里指定了view('errors.error'),确认这个调用的视图路径是对的。
一般按上面的步骤走下来,这个报错就能解决啦。
内容的提问来源于stack exchange,提问作者karthik karthik

