Как получить доступ к изображению из папки хранения в Laravel Homestead (проблема с Symboli c Links)? - PullRequest
0 голосов
/ 01 мая 2020

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

В идеале я хочу сохранить их в папке "profilepictures". Который может быть в каталоге public / profilepictures, используя символическую c ссылку на хранилище / app / public / profilepictures

Мой код сейчас выглядит следующим образом:

Контроллер:

    //store our image in the profilepics directory
    $profilepicpath = request('profilepic')->store('profilepictures', 'public');

    //actually write all the data to the database
    auth()->user()->profile()->create([
        'profilepic' => $profilepicpath,
        'dateofbirth' => $data['dateofbirth'],
        'about' => $data['about'],
        'zipcode' => $data['zipcode'],
        'state' => $data['state']
    ]);

Представление:

<div class="data" style="visibility: hidden;">
    {{$profile = App\profile::find(Auth::user()->id)}}
</div>
    <div class="profile-wrapper">
        <div class="profile-grid">
            <div class="profilepic">
            <img class="profilepic-image" src={{asset($profile['profilepic'])}}>
            </div>

Файловые системы. php в конфигурации:

/*
|--------------------------------------------------------------------------
| Symbolic Links
|--------------------------------------------------------------------------
|
| Here you may configure the symbolic links that will be created when the
| `storage:link` Artisan command is executed. The array keys should be
| the locations of the links and the values should be their targets.
|
*/

'links' => [
    //public_path('storage') => storage_path('app/public'),
    public_path('profilepictures') => storage_path('app/public/profilepictures'),
],

Кто-нибудь знает, почему это не сработает?

Ниже я могу подтвердить, что есть ссылка Symboli c, и она, кажется, указывает на правильные места: Viewing Symbolic Link in Terminal

Если я копирую местоположение изображения, откуда оно должно отображаться в вид, я получаю одно из следующих:

enter image description here

Или

enter image description here

Ни одна из ссылок не будет работать, если я попытаюсь посетить ее в браузере, я просто получаю сообщение об ошибке 404. Хотя, основываясь на просмотре структуры каталогов, я думаю, что первая должна работать.

enter image description here enter image description here

У кого-нибудь есть какие-либо предложения?

Я работаю laravel в усадьбе на virtualbox vm установлен на физическом рабочем столе Ubuntu, и до сих пор я пробовал много разных конфигураций для этого, включая безуспешное редактирование файла .htaccess.

1 Ответ

0 голосов
/ 04 мая 2020

Хорошо, в данном конкретном случае единственной проблемой было то, что когда я впервые запустил команду php artisan storage: link, я запустил ее с хост-машины, а не с виртуальной машины ... Так как я использую Homestead (vm ) все, что мне нужно было сделать - это уничтожить бродягу, затем воссоздать виртуальную машину и запустить команду php artisan storage: link с терминала виртуальной машины, и это сработало отлично.

...