Я работаю над приложением и хочу реализовать загрузку изображений в свое приложение. Теперь, когда я хочу создать символическую ссылку для своих файлов, я получаю следующую ошибку:
ErrorException : symlink(): No such file or directory
Exception trace:
symlink("/home/user/private/application/storage/app/public", "/home/user/private/application/public/storage")
Я знаю, в чем причина этого, но я не знаю, как исправить и / или найти обходной путь.
Моя общедоступная папка находится в моем каталоге html_root, а остальная часть приложения находится в каталоге вне моего каталога html_root. В данном случае /home/user/private/application.
когда я использую php artisan storage:link, он пытается найти общую папку в моем «частном» каталоге, но не может ее найти, потому что моя общая папка находится в каталоге html_root.
Поскольку в html_root должно быть только общедоступное содержимое, я подумал, что было бы также хорошо (для целей структуры) разместить остальное в другом каталоге.






Проблема решена помещением моего содержимого html_root обратно в мою личную папку в /home/user/private/application и созданием символической ссылки моей общей папки, которая идет на мой /home/user, и переименованием папки /home/user/public в /home/user/html_root (и сохранением символической ссылки нетронутой).
Так что я остаюсь с официальной структурой каталогов Laravel и делаю фальшивую (символическую ссылку) общей папки.
Благодаря этому я могу использовать php artisan storage:link в обычном режиме без создания специальной команды.
Если вы изменили структуру папок Laravel, вы не можете ожидать, что функции, которые полагаются на эту структуру, будут работать должным образом. В этом случае я бы посмотрел на код команды
storage:link(Illuminate\Foundation\Console\StorageLinkCommand), скопировал его в настраиваемую команду и при необходимости изменил.