我将Laravel Homestead用于VM进入我的开发环境。每当我转到/Website/Site/
页面时,我最近在Homestead.yaml中创建了一个新的映射(site.app
目录),我被重定向到另一个项目中设置的/ tasks页面({ {1}})。 (这会导致错误,因为页面不在那里)。这是我的Homestead.yaml文件:
/Laravel
Laravel包含重定向索引页面的路径,而Website目录是新项目,只是Laravel的全新安装,没有别的。以下是一些服务器/请求数据错误输出:
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 /(即旧项目)项目的route.php
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::get('/', function(){
return Redirect::to('tasks');
});
或更严重
vagrant reload --provision
运行~/Homestead
然后vagrant destroy
答案 0 :(得分:19)
我也遇到了这个问题。
据推测,Homestead.yaml
文件中的更改被忽略。所以,我决定刷新它。
<强>!经过修改的解决方案,不会破坏您的机器
我的解决方案不合适,因为它会破坏您现有的机器。请先查看此解决方案!
配置并运行Homestead环境后,您可能需要为Laravel应用程序添加其他Nginx站点。您可以在单个Homestead环境中运行任意数量的Laravel安装。有两种方法可以做到这一点:首先,您可以将站点添加到Homestead.yaml文件中,然后运行vagrant provision。
或者,您可以使用Homestead环境中提供的服务脚本。要使用serve脚本,请在您的Homestead环境中使用SSH并运行以下命令...
http://laravel.com/docs/homestead#daily-usage
根据Laravel.io forum,更好的解决方案是运行vagrant reload --provision
。
另见
旧解决方案:使用最后的度假村
尝试以下解决方案:
~/Homestead
运行vagrant reload
然后vagrant up
或更严重
~/Homestead
运行vagrant destroy
然后vagrant up
选项2破坏您的服务器及其数据库
注意:我采用了第2步。
答案 1 :(得分:9)
您可以运行homestead up --provision
强制重新加载Homestead.yaml文件。
答案 2 :(得分:2)
如果您有正在运行的宅基地实例,只需从本地计算机发出命令homestead provision
。
答案 3 :(得分:1)
我可以使用宅基地盒提供的serve
命令解决该问题。
当您连接到VM运行时:
serve personal.local /home/vagrant/projects/personal/personal-site/public
无需重启VM。
我已经尝试了vagrant reload --provision
并重新加载了yaml文件,但似乎不是ngnix配置。