Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Почему нельзя сохранять файлы напрямую в папку public (laravel)

#php #laravel #symlinks


Вопрос про файловую систему Lumen/Laravel:

В документации есть блок описывающий следующее:
Диск public предназначен для общего доступа к файлам. По умолчанию диск public использует
драйвер local и хранит файлы в storage/app/public. Чтобы сделать их доступными через
веб, вам надо создать символьную ссылку из public/storage на storage/app/public.

Из этого возникает вопрос: зачем нужно делать ссылку на другую папку? Почему нельзя
сразу сохранять файлы в папку public? 
Было предположение, что это не позволит получить доступ напрямую ко всем файлам,
лежащим в public'ке, но это оказлось не так. 
    


Ответы

Ответ 1



В документации же есть ответ на ваш вопрос. This convention will keep your publicly accessible files in one directory that can be easily shared across deployments when using zero down-time deployment systems like Envoyer. То бишь нужно это для разделения публичных файлов проекта (css, js, index.php, robots.txt, etc.) и файлов конкретного экземпляра проекта (например загруженные через админку картинки и т.п.). Это более корректно с точки зрения организации проекта и не создаст проблем при автоматическом деплое. НО никто не мешает вам сохранять в public директорию напрямую, достаточно в config/filesystems.php поменять 'root' => storage_path('app/public') на 'root' => public_path('storage'), у диска public.

Комментариев нет:

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