Laravel не отображаются загруженные изображения в хранилище

Laravel uploaded images are not displayed in storage

Обычно это происходит при хардкорном переносе локального проекта Laravel на хостинг.

Причина простая, не созданная символьная ссылка на storage в папке public.

Кажется всё просто, нужно только выполнить команду для создания символьной ссылки:

php artisan storage:link

Особенного удручает на хостинга отсутствие командной строки, спасибо за наводку данному туториалу — Перенос проекта Laravel на хостинг с локального сервера OpenServer добавив команду выше в данный роут, запустив в браузере, видим, что всё вроде хорошо выполнилось.

Route::get('/clear', function () {
    Artisan::call('cache:clear');
    Artisan::call('config:cache');
    Artisan::call('view:clear');
    Artisan::call('route:clear');
    Artisan::call('storage:link');

    return "Cache is clear.";
});

А проблема не решилась!

Потому что если выполнить эту команду из командной строки, увидим:

Якобы у нас уже создана символьная ссылка для папки storage. А по факту имеем, что в папке public обычная папка с названием storage, ведь как появится символьная ссылка, если проект был полностью разархивирован.

 

Решение:

Удалить папку storage из папки public и запустить команду создания символьной ссылки ещё раз (см. выше).

Как правило символьные ссылки подсвечиваются синим цветом:

Или имеют специальные иконки в файловых менеджерах популярных панелей.

cPanel:

ISPmanager:

Запись из постоянной рубрики — Невнимательность.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *