我正在使用Laravel Homestead来虚拟机进入我的开发环境。我最近在Homestead.yaml中创建了一个新的映射(/Website/Site/
目录)。每当我转到site.app
页面时,我都会重定向到另一个项目(/Laravel
)中设置的/tasks页面。(这会导致一个错误,因为页面不在那里)。这是我的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
以下是Laravel/(即旧项目)中项目的route.php
Route::get('/', function(){
return Redirect::to('tasks');
});
为什么Laravel的新安装会被另一个目录中的项目重定向?
解决方案
vagrant reload --provision
或者,更剧烈的
- 从
~/Homestead
运行vagrant destroy
,然后运行vagrant up
我也遇到了这个问题。
据推测,Homestead.yaml
文件中的更改被忽略了。所以,我决定刷新它。
!修订后的解决方案不会损坏您的机器
我下面的解决方案不足,因为它会破坏您现有的机器。请先查看此解决方案
一旦您的Homestead环境被配置并运行,您可能需要为您的Laravel应用程序添加额外的Nginx站点。您可以在一个Homestead环境中运行任意数量的Laravel安装。有两种方法可以做到这一点:首先,你可以简单地将网站添加到你的Homestead.yaml文件中,然后运行流浪者服务。
或者,您可以使用Homestead环境中提供的服务脚本。要使用serve脚本,请将SSH连接到Homestead环境中,并运行以下命令。。。
http://laravel.com/docs/homestead#daily-使用
根据Laravel.io论坛的说法,更好的解决方案是运行vagrant reload --provision
。
另请参见
*Vagrant Docs
旧解决方案:用作最后的度假胜地
尝试以下解决方案:
- 从
~/Homestead
运行vagrant reload
,然后运行vagrant up
或者,更剧烈的
- 从
~/Homestead
运行vagrant destroy
,然后运行vagrant up
选项2破坏服务器及其数据库
注:我采用了第2步。
您可以运行homestead up --provision
来强制重新加载Homestead.yaml文件。
如果您有一个正在运行的home实例,只需从本地机器发出命令homestead provision
即可。
我可以使用homebox附带的serve
命令来解决这个问题。当你连接到虚拟机时运行:
serve personal.local /home/vagrant/projects/personal/personal-site/public
而不需要重新启动VM。我尝试过vagrant reload --provision
,它重新加载了yaml文件,但似乎不是ngnix配置。