Как получить рабочий url к загруженному файлу в Laravel?
Загружаю изображения в local по всем правилам (создав ссылку из 'app/storage/public' в 'public/storage'). Изображения туда загружаются, никаких проблем. Адреса изображений записываю в бд, а вот отобразить изображения по их url'ам не выходит. Выходит, что изображения находятся в "public/storage/"+имя_файла. Но если выдавать данную ссылку в src тега img - изображения нет, и по данной ссылке мы получаем лишь "NotFoundHttpException".
Активный гуглёж не помог, stackoverflow тоже. Подскажите, в чём проблема? Неправильный url использую или как вообще получить доступ к этим файлам? storage_path не предлагать, он выдаёт полный путь в системе начиная буквы диска.
Ничего странного не вижу, всё согласно документации: Remember, if you are using the local driver, all files that should be publicly accessible should be placed in the storage/app/public directory. Furthermore, you should create a symbolic link at public/storage which points to the storage/app/public directory.
4. Пробовал, не помогает.
Быть может есть какой-то пример, где оформляется и загрузка файлов в local и их вывод во view?
Thorsen: в приведенном вами тексте ссылка делается на storage/app/public, а не на app/storage/public, как вы пишите в тексте вопроса. Хотя сути это не должно менять.
В какой системе вы делаете ссылки (файловая система, ОС)? Скорее всего проблема вообще не в Laravel.
Попробуйте в создать файл public/test1/test.txt и для каталога test сделайте ссылку public/test2 и в браузере попробуйте открыть имя_сайта/test2/test.txt. Если откроется, то, возможно проблема с правами на файлы картинок или еще что-то. Если не откроется, то проблема в обработке симв. ссылок.
Влад Токарев: На удивление да, по всей видимости оказалась проблема с правами на папку storage. Спасибо огромное, не знаю, как сам не догадался. Напишите свой комментарий как отдельный ответ (можете только часть про права на папку), отмечу как правильный.