部署到 Ubuntu 18.04 服务器后如何在 Laravel 中修复“未捕获的 ReflectionException:类视图不存在”

Posted

技术标签:

【中文标题】部署到 Ubuntu 18.04 服务器后如何在 Laravel 中修复“未捕获的 ReflectionException:类视图不存在”【英文标题】:How to fix "Uncaught ReflectionException: Class view does not exist" in Laravel after deployment to Ubuntu 18.04 server 【发布时间】:2020-02-12 08:12:52 【问题描述】:

我目前在 ubuntu 16.04 服务器上托管应用程序...但是当我尝试在新的 ubuntu 18.04 服务器上部署相同的代码时,我的 apache 日志中出现以下错误

php 致命错误:未捕获的 ReflectionException:/var/www/xxxxxxxxxxxx/public_html/vendor/laravel/framework/src/Illuminate/Container/Container.php:788 中不存在类视图

在我的 laravel 项目中导航到那行代码是

$reflector = new ReflectionClass($concrete);

我清除了 bootstrap/cache 中的配置并运行 composer dump-autoload 无济于事

【问题讨论】:

请编辑问题并添加config/app.php文件 他们运行的是相同版本的 PHP 吗? 您需要通过堆栈跟踪查看实际尝试从容器中解析“视图”的内容,因为它似乎尚未绑定 【参考方案1】:

在项目根目录中运行此命令:

composer dump-autoload

【讨论】:

【参考方案2】:

答案是运行composer dump-autoload -o。注意-o

【讨论】:

-o 代表什么? @Sliq 优化转储【参考方案3】:

感谢你们的帮助,问题是我从来没有在服务器上安装过 composer。在服务器上安装 composer 解决了这个问题。

【讨论】:

以上是关于部署到 Ubuntu 18.04 服务器后如何在 Laravel 中修复“未捕获的 ReflectionException:类视图不存在”的主要内容,如果未能解决你的问题,请参考以下文章

部署到 tomcat 9(Ubuntu 18.04)时,角度路由不起作用

如何将 elixir 应用程序从 Windows 开发机器部署到 Ubuntu 服务器

升级到 grub-efi-amd64 后 Ubuntu 18.04 无法启动

Ubuntu18.04 Server安装Harbor

部署到 Ubuntu 18.04 的 ASP.NET Core 3.0 应用程序抛出无法加载文件或程序集 System.Diagnostics.TraceSource

3.django restframework 项目部署到ubuntu18.04上(安装uwsgi)