Most shared host use
public_html instead of
While sometimes considered bad practice, some client may force you to drop-in everything via FTP
There are several ways to change public folder name found on Google.
But most of them won’t work perfectly.
- In AppServiceProvider.php, bind ‘path.public’ to IoC container
Won’t work in console, vendor:publish still publish in public path
- In index.php, bind ‘path.public’ to IoC container
Works in console, but
artisan servestill won’t work
After dig down deep in the source code, I found the cause:
publicPath() method in
Illuminate\Foundation\Application is hardcoded.
public function publicPath()
But we should never hard the core, so let’s override this method on our own class.