Vue项目启动后用局域网不能访问

文章讨论了基于Vite构建的Vue项目中,如何将默认的localhost访问方式改为局域网IP,提供了在package.json和vite.config.js中设置的两种解决办法,以实现多设备访问web应用。

今天来解决一个问题:基于Vite构建的Vue项目在启动后只能通过localhost这种形式访问

如果把localhost换成本主机的局域网ip地址之后页面无法访问了。

就连用127.0.0.1都无法访问。尝试多次之后,最后证明只有使用localhost这种形式才可以

原因:基于Vite构建的Vue项目在一开始创建后,默认设置的是只能用localhost这种形式来访问

想要真正实现让不同的设备能够访问我们做的web时,就需要解决这个问题,localhost 替换成本机 ip 地址之后无法访问。

解决措施:

下面给大家分析两种解决方法:

方法一:在package.json文件中设置如下

方法二:在vite.config.js文件中设置如下

好的,问题就分享到这里了,相信坚持就是胜利吧!

如果你觉得这篇内容对你有所启发或者帮助,请不要吝啬一个赞哦,让更多需要帮助的人看到它吧!

### Vue 项目启动后页面不可访问解决方案 #### 配置 `devServer` 属性 在开发环境中,Vue CLI 提供了一个内置的 Webpack 开发服务器 (`webpack-dev-server`) 来托管应用。可以通过配置 `vue.config.js` 或者直接修改 `build/webpack.dev.conf.js` 中的 `devServer` 对象来解决问题。 1. **解决 Invalid Host Header** 如果浏览器打开特定域名(如 www.local.com)时提示 `Invalid Host header` 的错误,可以在 `devServer` 对象中添加属性 `disableHostCheck: true`[^1]。这会禁用主机头验证,从而允许自定义域名访问。 2. **绑定到所有网络接口** 默认情况下,Vue 项目的开发服务器只监听本地回环地址 (localhost),因此其他设备或者同一台机器上的不同 IP 地址无法访问。可以将 `host` 设置为 `0.0.0.0`,这样它会在所有的网络接口上运行[^3]: ```javascript module.exports = { devServer: { host: '0.0.0.0', // 绑定到所有网络接口 port: 8080, disableHostCheck: true // 解决 Invalid Host header 错误 } }; ``` 3. **跨域问题处理** 若存在前后端分离的情况,可能会遇到跨域请求失败的问题。可以在 `devServer.proxy` 中配置代理规则,使前端能够通过相对路径向后端发送请求而无需担心跨域限制[^2]: ```javascript module.exports = { devServer: { proxy: { '/api': { // 将 /api 开头的请求转发给后端服务 target: 'http://backend.example.com', changeOrigin: true, pathRewrite: { '^/api': '' }, }, }, }, }; ``` 4. **防火墙设置** 即便完成了上述配置,在某些操作系统下仍然可能出现由于防火墙阻止外部设备访问指定端口而导致无法连接的现象。此时需要检查并调整防火墙策略以开放对应的服务端口号[^4]。对于 Windows 用户来说,可通过控制面板进入高级安全选项创建入站规则;Linux 则可利用命令行工具如 `ufw` 或 `iptables` 进行管理。 5. **测试与确认** 完成以上更改之后重启开发环境,并尝试从本机以及局域网内的其它计算机分别访问新设定好的 URL 和端口组合,比如 http://<your-ip>:8080 。如果一切正常,则应该可以看到预期的应用界面。 --- ### 注意事项 - 修改 `node_modules` 下的内容并不是推荐的做法,因为这些改动会被未来的依赖更新覆盖掉。建议优先考虑使用官方支持的方式来进行定制化配置。 - 当生产环境下部署时,请勿保留调试模式开启状态(`debug=true`)或暴露敏感信息(例如未加密传输密钥等)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平静方能至远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值