我在本地的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>
(Also基本相同)
在Mac上运行完美。只要我在Ubuntu上部署它,我就会收到上面的错误,即它“无法找到具有这些名称的类或视图”。
有人能请指示我如何去解决这个问题,因为到目前为止,我完全不知道,尽管知道大小写敏感性可能是问题的其他问题,我找不到任何实际的解决方案或方法来解决这个问题。
9条答案
按热度按时间ajsxfq5m1#
我也有同样的问题。多亏了你的问题,我才能找到解决它的方法:D
在我的例子中,为了更好地组织,我在另一个文件夹中创建了一个组件:
因此,它在以下目录中创建了视图组件:
views/components/tutorial/channel-name/alert.blade.php
现在,要调用组件,请按以下方式操作:
差不多就是这样。
2exbekwf2#
我也遇到了同样的问题,我通过交叉检查我的文件夹名称来修复它。
请注意,文件夹名称应为
components
,而不是component
。请参阅屏幕截图以获得更好的建议。
范例:
如果您遵循约定,还有一件事是,如果您在
views/components/admin/side-menu/side.blade.php
您可以将组件调用为:
<x-admin.side-menu.side></x-admin.side-menu.side>
说明:
blade语法中使用的
x-
基本上表示您正在从Components
文件夹中选择文件夹或文件。使用的
.
(点)是针对您挖掘到要使用的blade文件的每个目录。ttp71kqs3#
在我的Case中,我没有在Component中提供命名空间,它在提供命名空间后解决了。
h79rfbju4#
我也遇到了同样的问题,但我意识到错误是组件的类名。我没有大写类名,当我大写类名时,我就不再出现错误,我的项目运行得很好。
请尝试大写与错误消息中的组件匹配的类名。
ffdz8vbo5#
当我是一个初学者,我得到了同样的错误,但在我的情况下,有一切都好,但有一个小的语法错误
<x- card />
有一个差距之间的卡和破折号这是不正确的,所以应该没有空格之间的破折号和卡<x-card />
所以尝试一次,也许这是你的问题。gzszwxb46#
我遇到了同样的问题--解决办法就是改变:
<x-forms.inputradio>
至:<x-forms.inputRadio>
只是字母大小..px9o7tmv7#
上述问题的问题区分大小写,
对于本地看起来像它的大小写不敏感的原因,它的作品为本地完成,但在服务中断。
如果您在任何新文件夹中创建了新组件(即
它将为组件创建两个文件,class和blade文件。class文件
刀片锉
你可以用类或blade文件来呈现组件。2对于类,请确保文件夹,类名区分大小写。
要呈现Blade文件,应该
注意如果您手动重新定位文件,请确保类文件中的命名空间、文件名和组件调用语法应匹配(区分大小写)
示例仅供参考,请尝试将语法和名称与您文件、文件夹进行比较。
我希望这会有帮助:)
oipij1gg8#
在我的例子中,我创建了一个类
AppLogo
,并将blade生成为app-logo.blade.php
。然而,在我的视图文件中,我将组件引用为
x-applogo
,这在本地工作,但在生产(实时托管服务器)中,我得到了这个错误。解决方案:我将blade/view文件中出现的所有
x-applogo
更改为x-app-logo
。这在开发和生产中都有效。
希望这对外面的人有帮助。
b5buobof9#
这种情况发生在服务器上。尽量不要使组件在文件夹内。。我在服务器上遇到了同样的问题,但没有得到任何解决方案,唯一有效的解决方案是将您的组件保持在任何子文件夹之外