Laravel 在生产环境中“无法找到组件的类或视图”

我在本地的Mac上开发。最新版本的大苏尔。

今天,我通过Forge通过Ubuntu服务器将我的应用程序部署到生产环境,并遇到了一个我以前从未见过的错误,并且无法在线找到答案。我可以看到很多人抱怨它,但是关于其他答案的任何人都说的都是链接到没有解决方案甚至解释的问题,所以这就是为什么我要问一个新问题。

确切的错误是这样的;Unable to locate a class or view for component [layouts.base]. (View: /home/forge/default/releases/20201204084441/resources/views/layouts/app.blade.php)

在我的应用程序中,我有; 看起来像这样;app\View\Components\Layouts\App.php

<?php

namespace App\View\Components\Layouts;

use Illuminate\View\Component;

class App extends Component
{
    public function render()
    {
        return view('layouts.app');
    }
}

然后我也有;resources\views\layouts\app.blade.php

<x-layouts.base>
<!-- contents -->
</x-layouts.base>

(基本也差不多)

在 Mac 上完美无瑕。一旦我在Ubuntu上部署它,我就得到上面的错误,即它“无法找到具有这些名称的类或视图”。

有人可以指导我如何解决这个问题,因为到目前为止,我完全不知道,尽管知道区分大小写可能是这个问题,因为关于这个问题的其他问题,我找不到任何实际的解决方案或方法来解决这个问题。


答案 1

我遇到了同样的问题。多亏了你的问题,我可以找出如何解决它:D

在我的情况下,我已经在另一个文件夹中创建了一个组件,以便更好地组织:

$ php artisan make:component Tutorial/channelName/Alert

因此,它在以下目录中创建了视图组件:

views/components/tutorial/channel-name/alert.blade.php

现在,要调用您的组件,您可以按以下方式操作:

<x-tutorial.channelName.alert />

差不多就是这样。


答案 2

我遇到了同样的问题,我通过交叉检查我的文件夹名称来修复它。

请注意,文件夹名称应为 而不是 。componentscomponent

请参阅屏幕截图以获取更好的想法。

enter image description here

例:

如果您遵循惯例,还有一件事是,如果您有一个文件

views/components/admin/side-menu/side.blade.php

您可以将组件称为:

<x-admin.side-menu.side></x-admin.side-menu.side>

解释:

边栏选项卡语法中使用的语法基本上表示您正在从文件夹中选择文件夹或文件。x-Components

使用的(点)适用于你挖掘到要使用的边栏选项卡文件的每个目录。.


推荐