Обслуживание файлов из хранилища в Laravel (пользовательский путь хранения по символической ссылке) - PullRequest
0 голосов
/ 04 июня 2018

Я хочу создать сайт обмена видео для пространственной ниши (вроде мини-YouTube).

Я успешно создал функцию загрузки, и файлы сохраняются в storage/public/videos

Затем я создал символическую ссылку, используя php artisan storage:link

Когда я пытаюсь получить доступ к файламиспользуя echo asset('storage/videos/file.mp4');, как указано на https://laravel.com/docs/5.6/filesystem

мой HTML в представлении выглядит как

<video controls>

<source src="{{ asset('storage/videos/file.mp4') }}" type="video/mp4">

</video>

ВОПРОС : что я делаю неправильно или отсутствует?

1 Ответ

0 голосов
/ 04 июня 2018

Итак, из документации :

Публичный диск предназначен для файлов, которые станут общедоступными.По умолчанию общедоступный диск использует локальный драйвер и сохраняет эти файлы в storage / app / public .Чтобы сделать их доступными из Интернета, вы должны создать символическую ссылку от public / storage до storage / app / public .Это соглашение будет держать ваши общедоступные файлы в одном каталоге, который может быть легко распространен между развертываниями при использовании систем развертывания с нулевым временем простоя, таких как Envoyer.:

ln -s storage/app/public public/storage

но вы храните ваши файлы в storage/public/videos, который недоступен (связан) документацией.

2 решения:

1) ВыВам нужно сделать вручную (вручную создать символические ссылки):

ln -s storage/public/videos public/storage/videos

и в коде использовать его следующим образом: asset('storage/videos/file.mp4')

2) Изменить методы хранения файлов для хранения файлов по соглашению: storage/app/public/videos

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...