Windows环境下Roots Sage 10代理报错求助:localhost:3000代理失败
Windows下Roots Sage 10代理错误解决方法
你遇到的Error occurred while trying to proxy: localhost:3000/错误,核心原因是WSL环境与Windows系统的网络隔离,导致Bud无法正确代理到Local WP搭建的站点,结合你的配置,具体排查和解决步骤如下:
问题根源
- WSL的
localhost和Windows的localhost并非同一网络环境:你在WSL终端运行Bud,但Local WP站点部署在Windows系统中,WSL默认无法直接通过my-site.local访问Windows侧的站点。 - 配置的监听地址限制:
setUrl('http://localhost:3000')仅让Bud监听WSL本地接口,Windows浏览器访问该地址时无法正确连接到WSL内的服务。
解决步骤
1. 修改Bud配置文件
更新bud.config.js,调整监听地址和代理地址:
app .setUrl('http://0.0.0.0:3000') // 让Bud监听所有网络接口,允许外部访问 .setProxyUrl('http://[Windows本地IP]/') // 替换为Windows的实际IPv4地址(可通过Windows cmd运行ipconfig查看) .watch(['resources/views', 'app']);
如果Local WP使用Docker容器,也可以直接用http://host.docker.internal/作为代理地址,无需手动查找IP。
2. 确保WSL能访问Windows站点
在WSL终端执行ping my-site.local,如果无法连通,修改WSL的hosts文件:
- 运行
sudo nano /etc/hosts - 添加一行:
[Windows本地IP] my-site.local(替换为实际IP) - 按
Ctrl+O保存,Ctrl+X退出
3. 调整访问方式
运行npm run dev后,在Windows浏览器中访问http://[WSL本地IP]:3000(WSL的IP可通过终端运行hostname -I查看),或直接访问http://0.0.0.0:3000。同时确保Windows防火墙允许3000端口的入站请求。
4. 检查依赖与环境
- 确认WSL内的Node版本符合要求:运行
node -v,确保版本≥16.0.0,版本不符可通过nvm切换。 - 重新安装依赖:删除
node_modules和package-lock.json,执行npm install确保依赖完整无冲突。
内容的提问来源于stack exchange,提问作者drake035
相关产品推荐
相关产品推荐

