Усадьба: сопоставление папок с неправильным корнем документа
Я использую Laravel Homestead для VM в моей среде dev. Недавно я создал новое сопоставление (каталог /Website/Site/
) в моем Homestead.yaml, когда я перехожу на страницу site.app
, я перенаправлен на страницу /tasks, которая была установлена в другом проекте (/Laravel
). (Это приводит к ошибке, так как страницы там нет). Вот мой файл Homestead.yaml:
folders:
- map: /Users/me/Homestead/Code/Laravel
to: /home/vagrant/Code/Laravel
- map: /Users/me/Homestead/Code/Larabook
to: /home/vagrant/Code/Larabook
- map: /Users/me/Homestead/Code/Website/Site
to: /home/vagrant/Code/Website
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
- map: larabook.app
to: /home/vagrant/Code/Larabook/public
- map: site.app
to: /home/vagrant/Code/Website/public
variables:
- key: APP_ENV
value: local
Laravel содержит маршрут, в котором перенаправляется индексная страница, а каталог сайта - это новый проект, который представляет собой только новую установку Laravel и ничего больше. Вот некоторые из данных ошибки сервера/запроса:
SCRIPT_FILENAME /home/vagrant/Code/Laravel/public/index.php
SCRIPT_NAME /index.php
REQUEST_URI /tasks
DOCUMENT_URI /index.php
DOCUMENT_ROOT /home/vagrant/Code/Laravel/public
Вот маршрут .php для проекта в Laravel/(т.е. старый проект)
Route::get('/', function(){
return Redirect::to('tasks');
});
Почему новая версия Laravel перенаправляется проектом в другом каталоге?
РЕШЕНИЕ
-
vagrant reload --provision
или, что более важно,
- из
~/Homestead
запустите vagrant destroy
, затем vagrant up
Ответы
Ответ 1
Я тоже столкнулся с этой проблемой.
Предполагается, что изменения в файле Homestead.yaml
игнорируются. Итак, я решил обновить его.
! ПЕРЕСМОТРЕННОЕ РЕШЕНИЕ, КОТОРУЮ НЕ УНИЧТОЖИТ ВАШУ МАШИНА
Мое решение ниже неадекватно, поскольку оно уничтожает вашу существующую машину. Посмотрите это решение первым!
Как только ваша среда Homestead будет запущена, вы можете добавить дополнительные сайты Nginx для своих приложений Laravel. Вы можете запустить как можно больше установок Laravel в одной среде Homestead. Есть два способа сделать это: во-первых, вы можете просто добавить сайты в свой файл Homestead.yaml, а затем запустить брандмауэр.
В качестве альтернативы вы можете использовать сервис script, который доступен в вашей среде Homestead. Чтобы использовать службу script, SSH в вашей среде Homestead и выполните следующую команду...
http://laravel.com/docs/homestead#daily-usage
В форуме Laravel.io лучшее решение - запустить vagrant reload --provision
.
См. также
* Vagrant Docs
СТАРЫЕ РЕШЕНИЯ: ИСПОЛЬЗОВАТЬ КАК ПОСЛЕДНИЙ КУРОРТ
Попробуйте следующие решения:
- из
~/Homestead
запустите vagrant reload
, затем vagrant up
или, что более важно,
- из
~/Homestead
запустите vagrant destroy
, затем vagrant up
ВАРИАНТ 2 УДАЛЯЕТ ВАШ СЕРВЕР И ЕГО БАЗЫ ДАННЫХ
Примечание. Я прибегал к шагу 2.
Ответ 2
Вы можете запустить homestead up --provision
, чтобы принудительно перезагрузить файл Homestead.yaml.
Ответ 3
Если у вас есть исполняемый экземпляр homestead, просто выполните команду homestead provision
с вашей локальной машины.
Ответ 4
Я мог бы исправить эту проблему, используя команду serve
, предоставленную с полем усадьбы.
Когда вы подключены к запуску виртуальной машины:
serve personal.local /home/vagrant/projects/personal/personal-site/public
без необходимости перезагрузки виртуальной машины.
Я пробовал vagrant reload --provision
, и он перезагружает файл yaml, но, похоже, не является конфигурацией ngnix.