vue项目不能同时被localhost和ip地址同时访问的方法

初始化基于vue-cli和webpack的Vue项目后,可通过npm run dev启动,浏览器输入localhost:8080访问。但手机用ip地址访问遇问题,修改配置文件中host为ip可解决,但localhost无法访问。最终找到两种解决办法,一是将index.js中host改为‘0.0.0.0’,二是在package.json的script下dev后加--host 0.0.0.0。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在初始化完一个vue项目(基于vue-cli 和webpack)之后,我们可以通过 npm run dev来让这个项目跑起来。

我们在浏览器里输入localhost:8080就可以访问该项目了。

但是要是手机想访问的话,就得通过ip地址,但当我输入ip地址进行访问时,却发现不行。

于是我找项目的配置文件,发现config/index.js,有个host的配置项,默认值为“localhost”,我把localhost改成ip地址,重启,发现可以访问,但localhost:8080这个地址就没办法访问了。

本着一点强迫症,在网上百度的基础与向dalao请教的基础之上,找到了有个解决办法。既能通过ip地址访问,也能通过localhost访问。

方法1.将index.js中的host的值改为‘0.0.0.0’

方法2.修改package.json中script下dev的值,在后面加入--host 0.0.0.0 也可以解决

### Vue项目中网络请求显示`localhost`而非IP地址的解决方案 在开发环境中,Vue项目的默认配置通常会将API请求指向`localhost`。然而,在某些情况下(例如跨设备调试或部署到服务器),可能需要更改此行为以使请求指向特定的IP地址。 #### 修改Vue CLI中的代理设置 如果使用的是Vue CLI工具链,则可以在`vue.config.js`文件中定义代理规则来修改请求的目标地址。通过这种方式可以指定实际的IP地址而不是`localhost`作为目标主机[^1]: ```javascript module.exports = { devServer: { proxy: { '/api': { target: 'http://<your-ip-address>:port', // 替换为实际的IP地址端口 changeOrigin: true, pathRewrite: { '^/api': '' } } } } }; ``` 上述代码片段展示了如何重新定向所有的`/api`路径下的请求至指定的IP地址服务端口号上。 #### 使用环境变量自定义基础URL 另一种方法是利用`.env`文件来自定义不同环境下使用的API基础URL。这允许开发者轻松切换生产与开发模式下所访问服务地址[^2]: - 创建或者编辑位于项目根目录下的`.env.development`文件并加入如下内容: ```bash VUE_APP_BASE_API=http://<your-ip-address>:port/api/ ``` 接着,在前端发起HTTP请求时可以通过读取这个环境变量构建完整的请求链接: ```javascript const axiosInstance = axios.create({ baseURL: process.env.VUE_APP_BASE_API || '/api', }); ``` 这样做的好处在于无需每次调整源码即可适应不同的运行场景需求。 #### 调整Nginx反向代理配置支持外部访问 当应用已经部署完毕但仍希望保留原有的基于路径区分前后端逻辑的功能时,可考虑优化现有的Nginx配置使其能够接受来自公网或者其他局域网内的连接尝试。确保防火墙开放相应端口,并更新站点配置文件如下面例子所示: ```nginx server { listen 80; server_name your-domain-or-ip; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location /api/ { rewrite ^/api/(.*)$ /$1 break; proxy_pass http://backend_server_ip_or_hostname/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } ``` 以上配置示例说明了怎样让Nginx识别带有`/api`前缀的请求并将它们转发给后台服务处理程序。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值