Усадьба: сопоставление папок с неправильным корнем документа

Я использую 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

или, что более важно,

  1. из ~/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

или, что более важно,

  1. из ~/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.