如何修复Vagrant自动调用的homestead.rb路径错误?
修复Vagrant加载homestead.rb路径错误的方案
别担心,这个问题大概率是因为你在错误的目录执行命令,导致Vagrantfile里的homestead.rb路径指向了不存在的位置,按下面的步骤就能搞定:
方案1:修改错误Vagrantfile的路径指向
- 打开报错里提到的Vagrantfile:
C:/xampp/htdocs/all-projects/project1/vendor/bin/Vagrantfile - 找到文件开头加载homestead.rb的
require语句,原代码大概是这样:require File.expand_path("../vendor/laravel/homestead/scripts/homestead.rb", __FILE__) - 根据你说的项目下有
/laravel文件夹,把路径改成实际的homestead.rb位置。假设正确路径是C:/xampp/htdocs/all-projects/project1/laravel/vendor/laravel/homestead/scripts/homestead.rb,调整后的代码应该是:
(require File.expand_path("../../laravel/vendor/laravel/homestead/scripts/homestead.rb", __FILE__)../../是从vendor/bin目录回到项目根目录,再进入laravel文件夹) - 保存修改后,回到vendor/bin目录重新执行
vagrant up试试。
方案2:回到项目根目录执行命令(更推荐)
其实Homestead的标准操作应该在项目根目录下进行,你可能误在vendor/bin里跑了命令才导致路径错乱:
- 导航到项目根目录:
cd C:/xampp/htdocs/all-projects/project1 - 检查根目录有没有
Vagrantfile,如果没有,重新执行homestead make生成正确的配置文件 - 直接在根目录执行
vagrant up,此时Vagrantfile里的相对路径会自动指向正确的homestead.rb位置,不会再报错。
问题根源说明
当你在vendor/bin目录执行homestead make时,生成的Vagrantfile会基于当前目录计算homestead.rb的相对路径,但实际你的homestead.rb在项目的laravel文件夹下,所以路径就匹配不上了。回到项目根操作是最稳妥的方式。
内容的提问来源于stack exchange,提问作者Kevin Barreiro
相关产品推荐
相关产品推荐

