Home > Back-end >  How Change laravel public_path
How Change laravel public_path

Time:08-02

I changed my laravel installation folder structure by moving all files and folders from the root directory to a new folder 'core'.

The goal is, to have only the folders in the root directory of the project

core
public

I have updated the index.php in public folder but I have the following problem: when I die dump the paths, all are correct except the public path

dd(app_path()); //  somepath\project\core\app
dd(storage_path()); //  somepath\project\core\storage
dd(base_path()); //  somepath\project\core
dd(public_path()); //  somepath\project\core\public

I want to retain all other paths and change only the public path to somepath\project\public instead of somepath\project\core\public , how can I do this, online docs I've reference focus on changing public_html to public but I don't want to change the public_html, just to tell laravel that the public path is somepath\project\public

This particularly needful for me as I use the laravel storage for handling uploads.

Below is my folder structure

project
    |-core
      |- every other folders and files
    |-public
      |-every other asset files

CodePudding user response:

You need to rewrite the base path in the app/Providers/AppServiceProvider.php like so:

public function boot()
{
    $this->app->bind('path.public', function () {
        return dirname(getcwd(), 1) . '/public';
    });
}
  • Related