我正在使用Laravel 5.5。我将我的项目上传到服务器。但我收到错误,我的项目工作正常本地服务器。
Class' App \ Models \ Textbox \ TextBox'未找到 Symfony \ Component \ Debug \ Exception \ FatalThrowableError
我知道,我只是运行composer dump-autoload
,它的工作正常。但主要问题是主要托管服务器是bluehost / cpanel。我无法使用shell运行任何命令,因为它说 您的帐户未经过验证 而且我无法执行此操作,因为帐户不是我的。
但我寻找替代解决方案,只需在本地服务器中运行dump-autoload
后将这些文件夹上传到服务器。
\bootstrap
\vendor\composer
但它不起作用。最后,我只上传了所有vendor
文件夹,但没有得到任何结果。
我是否必须仅运行dump-autoload
服务器commandline
/ bash
?
如果不在服务器中运行任何commandline
查询,我可以解决这个问题吗?
P.S。我查看了所有相关问题和谷歌的所有解决方案,但我无法让它为工作做好准备:(
这是我的文件夹结构:
答案 0 :(得分:5)
注意你的班级名称。
如你所见,你得到错误:
App\Models\Textbox\TextBox
但你的班级是:
App\Models\TextBox\TextBox
所以你看到目录/名称空间是大写字母B.
这对于作曲家自动加载具有完全相同的类名和具有有效大小写的目录非常重要(假设您使用的是PSR-4
,但这是Laravel的默认值)。
在Windows文件/目录上的情况并不重要因此您可以编写命名空间TEXTBOX(对于Windows TEXTBOX
目录与textbox
)相同,但在Linux服务器上没有{{ 1}}目录,没有TEXTBOX
目录 - 只有Textbox
目录,因此无法自动加载类,这就是为什么你在生产和localhost上得到错误它工作正常