I develop on a Mac locally. Latest version of Big Sur.
Today I went to deploy my app to production via an Ubuntu server through Forge, and got greeted with an error I've never seen before, and can't find an answer to online. I can see MANY people complaining about it, but all anyone has said on other answers is link to issues that don't have solutions or even explanations really, so that's why I'm asking a new question.
The exact error is this;
Unable to locate a class or view for component [layouts.base]. (View: /home/forge/default/releases/20201204084441/resources/views/layouts/app.blade.php)
In my app I have;
app\View\Components\Layouts\App.php
which looks like this;
<?php
namespace App\View\Components\Layouts;
use Illuminate\View\Component;
class App extends Component
{
public function render()
{
return view('layouts.app');
}
}
Then I also have;
resources\views\layouts\app.blade.php
<x-layouts.base>
<!-- contents -->
</x-layouts.base>
(Also pretty much the same for base)
Works flawlessly on Mac. As soon as I deploy it on Ubuntu, I get the error above that it is "unable to locate a class or view" with those names.
Can someone please instruct me on how I can go about fixing this, since so far I have absolutely no idea and despite knowing that case sensitivity is probably the issue as per the other questions about this, I cannot find any actual solution or way to resolve this.
I had the same problem. Thanks to your question, I could find out how to solve it :D
In my case, I had created a component inside another folder, for better organization sake:
$ php artisan make:component Tutorial/channelName/Alert
So it created the view component inside the following directory:
views/components/tutorial/channel-name/alert.blade.php
Now, to call your component you do it this way:
<x-tutorial.channelName.alert />
That's pretty much it.