Поскольку вы разместили свое приложение Laravel на платформе общего хостинга, ваше приложение не знает правильный путь к общему каталогу.
Итак, вам нужно определить функцию в вашем файле public/index.php
следующим образом: (вставьте ее поверх файла index.php
)
function public_path($path = '')
{
return realpath(__DIR__)
.($path ? DIRECTORY_SEPARATOR.$path : $path);
}
Определение этой функции приводит к тому, что вспомогательная функция с тем же именем пропускается, что позволяет переопределить ее функциональность. Это необходимо для использования «нестандартного» местоположения для «публичного» каталога Laravel.
Теперь создайте нового поставщика услуг для вашего пути:
php artisan make:PublicPathServiceProvider
В функции register()
вам нужен код:
public function register()
{
if (env('PUBLIC_PATH') !== null) {
//An example that demonstrates setting Laravel's public path.
$this->app['path.public'] = base_path().'/../'.env('PUBLIC_PATH');
} else {
$this->app['path.public'] = base_path().'/../public_html';
}
// Possible environment changes
if ($this->app->environment() === 'local') {
} elseif ($this->app->environment() === 'test') {
} elseif ($this->app->environment() === 'production') {
}
}
Теперь зарегистрируйте этого провайдера в своем приложении.
config/app.php
Под Провайдерами добавьте это:
App\Providers\PublicPathServiceProvider::class,
Последний шаг, в вашем файле .env
создайте новую переменную:
PUBLIC_PATH=/public_html
Тебе хорошо идти !!!
Примечание: Не забудьте проверить путь, куда вы загрузили свое приложение Laravel. (Выше предполагается, что путь равен public_html )
Важно: После изменения конфигурации вам может потребоваться очистить кеш:
php artisan config:cache
php artisan cache:clear