Laradock 404 Не найдены файлы с символической ссылкой на хранилище

#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 ...