Jest to prawdopodobne, ponieważ serwer WWW nginx nie jest wskazuje właściwej ścieżki.
Są dwa klucze, na które powinieneś spojrzeć: mapklucz pod foldersi toklucz pod sites. foldersKlucz odwzorowuje foldery na komputerze lokalnym do Vagrant VM. sitesKlucz służy do tworzenia wirtualnego hosta na nginx z wartości to.
Chcesz się upewnić, że pozycja toponiżej siteswskazuje właściwą ścieżkę public.
Problem polegał na tym, że stworzyłem projekt laravela z composer create laravel/laravel. Spowodowało to utworzenie folderu w moim bieżącym katalogu o nazwie laravel. Następnie bez zmiany katalogów zainstalowałem pomocnika homestead z composer require laravel/homestead --dev.
Po uruchomieniu php vendor/bin/homestead makei vagrant upmoja struktura katalogów wyglądał mniej więcej tak:
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
Mój Homestead.yml wyglądał tak:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Jeśli przyjrzysz się uważnie, /Users/USER/Sites/sandbox/php/laravel51ścieżka zostanie zamontowana na włóczącej się maszynie wirtualnej. To jest zły katalog, ponieważ powinien wskazywać na katalog główny projektu Laravel, w którym znajduje się katalog aplikacji. To, co się tutaj stało, polegało na tym, że miałem potrzebować pomocnika zagrody, gdy byłem w katalogu głównym projektu .
Więc teraz pytanie brzmi, co mam zrobić? Masz dwie opcje: pozbądź się obecnej maszyny wirtualnej z homestead i zacznij od nowa, ale tym razem z katalogu głównego projektu LUB odzyskaj to, co już masz.
Jeśli chcesz uratować to, co masz, musisz przenieść kilka plików i folder do katalogu głównego projektu laravel.
Oto artefakty, które musisz przenieść:
.vagrant
Homestead.yml
Vagrantfile
Plik composer.json będzie potrzebne, ponieważ będziesz tego potrzebować później.
Przenieś te pliki do katalogu głównego projektu laravel i zmień tam obecny katalog roboczy ( cd laravel). W tym momencie po prostu zaktualizuj mapunder foldersi upewnij się, że wskazuje na katalog główny projektu. Upewnij się również, że toklucz pod sitesto toklucz pod foldersz /publicdołączonym do niego kluczem .
Na przykład:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Teraz uruchom composer require laravel/homestead --devtak, aby pomocnik homestead był wymagany w pliku composer.json bieżącego projektu i został zainstalowany.
Biegnij vagrant reload --provisioni wszystko powinno być gotowe.
vagrant up --provisionnie działa dla mnie, alehomestead up --provisiontak