Livewire.js 404 when app is hosted in sub directory
My application is in "app" sub directory https://example.com/app, filament admin is showing login page but livewire.js is not found. Console shows https://example.com/livewire/livewire.js not found. How can I make it work?
All other assets like filament.css, app.css, app.js loading without any issues.
10 Replies
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
I did that but it still shows error unless I change the app url in .env to https://example.com/app/public. Is there any way to hide public from url?
Check your
APP_URL
. Is it https://example.com/app
?Also check this link: https://github.com/livewire/livewire/issues/242
GitHub
Problem loading Livewire.js · Issue #242 · livewire/livewire
It's likely to be a simple thing but I can't manage to solve it on my own smh. On my local env it's working fine just doing this: ... @livewireAssets </body> This of course load t...
Yes, app url is https://example.com/app but when I change it to https://example.com/app/public it works.
That doesn't sound right.
Sounds like your server config isn't right. /app should be serving /app/public otherwise you are risking exposing the whole app publicly.
Not sure exactly what your configuration is, however I am running Filament v3.2.35, which upgraded Livewire to v3.4.6 from v3.3.5 and in doing so, I had a similar issue where livewire/livewire.js did not load when APP_DEBUG=false, which is what you would set it to in a production environment naturally.
I found the issue to be in the https://github.com/livewire/livewire/blob/7e7d638183b34fb61621455891869f5abfd55a82/src/Mechanisms/FrontendAssets/FrontendAssets.php file that was recently updated.
In my Filament service provider, I updated my configuration for Livewire in the boot method: (this is because my Filament app runs under an alias defined in Apache.)
Livewire::setScriptRoute(function ($handle) {
return config('app.debug')
? Route::get('/alias-goes-here/livewire/livewire.js', $handle)
: Route::get('/alias-goes-here/livewire/livewire.min.js', $handle);
});
So, this matches the change to Livewire and now my app works just as it did before!
Hope this helps!
GitHub
livewire/src/Mechanisms/FrontendAssets/FrontendAssets.php at 7e7d63...
A full-stack framework for Laravel that takes the pain out of building dynamic UIs. - livewire/livewire
If you use NGINX as Web server, there are a little change do you have to do: in your vhost file, just delete the js word, below of your server configuration, an that's it, at least worked on it for me