Это, вероятно , потому , что Nginx веб - сервер не указывает на правильный путь.
Вам следует посмотреть на два ключа: mapнижний foldersи toнижний sites. foldersКлюч отображает папки на локальном компьютере в бродячей VM. sitesКлюч используется для создания виртуального хоста на Nginx со значением в to.
Вы хотите убедиться, что toпод sitesуказывает правильный путь к public.
Проблема заключалась в том, что я создал свой проект laravel с помощью composer create laravel/laravel. Это создало папку в моем текущем каталоге с именем laravel. Затем, не меняя каталоги, я установил помощник по усадьбе composer require laravel/homestead --dev.
После запуска php vendor/bin/homestead makeи vagrant upмоя структура каталогов выглядела примерно так:
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
Мой Homestead.yml выглядел так:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Если вы присмотритесь, /Users/USER/Sites/sandbox/php/laravel51путь будет установлен на бродячую виртуальную машину. Это неправильный каталог, потому что он должен указывать на корень проекта laravel, где находится каталог вашего приложения. Здесь произошло то, что я должен был потребовать помощника по дому, пока я был в корне проекта .
Итак, теперь вопрос в том, что мне делать? У вас есть два варианта: избавиться от текущей домашней виртуальной машины и начать заново, но на этот раз из корня проекта ИЛИ спасти то, что у вас уже есть.
Если вы хотите спасти то, что у вас есть, вам придется переместить несколько файлов и папку в корень вашего проекта laravel.
Вот артефакты, которые вам нужно переместить:
.vagrant
Homestead.yml
Vagrantfile
Он composer.jsonне понадобится, так как он понадобится вам позже.
Переместите эти файлы в корень вашего проекта laravel и измените туда свой текущий рабочий каталог ( cd laravel). На этом этапе просто обновите mapнижнюю часть foldersи убедитесь, что она указывает на корень проекта. Также убедитесь, что toнижний ключ sites- это toнижний ключ foldersс /publicдобавленным к нему.
Например:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Теперь запустите, composer require laravel/homestead --devчтобы помощник homestead был необходим в файле composer.json вашего текущего проекта и был установлен.
Беги, vagrant reload --provisionи все должно быть готово.
vagrant up --provisionне работает для меня, ноhomestead up --provisionничего