#laravel #docker #nginx #laradock
#laravel #docker #nginx #laradock
Вопрос:
Я создал приложение Laravel и использую ПК с Windows в сочетании с Docker и Laradock. Docker работает на WSL2, но подключен к моим дискам Windows (я знаю, это очень медленно, и я должен переключиться на работу в файловой системе Linux).
Я хочу использовать файловую систему Laravel, потому что я использую envoyer для развертывания своего приложения. Для этого я создал символическую ссылку из public / storage в storage / app / public (по умолчанию) php artisan storage:link
в контейнере рабочей области.
Моя среда IDE (PhpStorm) корректно отображает файлы из ссылки. Загрузка изображений и, таким образом, перемещение их в папку хранилища также работает.
Проблема с Laradock (локальная настройка разработки) заключается в том, что если я использую URL-адрес из функции asset () (mywebsite.test/storage/file.txt например), я получаю 404 Not Found. Эта проблема не сохраняется на моем промежуточном сервере Linux. Там все работает нормально.
У кого-нибудь есть идеи, в чем может быть проблема?
Комментарии:
1. Вы тоже запускали это на своем текущем компьютере?
php artisan storage:link
2. Я запустил его со своего компьютера и из контейнера docker. Сейчас я перестраиваю свои контейнеры laradock, чтобы сразу попробовать его из workspace, а не сначала с моего локального компьютера
Ответ №1:
По-видимому, проблема заключалась в том, что вы всегда должны создавать символическую ссылку в контейнере рабочей области. Мой процесс был следующим:
docker-compose down
docker-compose up
docker ps
чтобы получить идентификатор контейнера рабочей областиdocker exec -it [workspace-container-id] bash
php artisan storage:link
в папке проекта. Если это не сработает, вы можете создать его вручную из общей папки с помощьюln -sf ../storage/app/public storage
Комментарии:
1. Только что столкнулся с той же проблемой, забудьте о символической ссылке контейнера… Кстати, при использовании sail процесс упрощается, просто выполнив
sail php artisan ...