vue3.0解决vue项目中的“Invalid Host header”

在更新到Webpack5时遇到了一个错误,提示`disableHostCheck`属性不再被支持。根据官方文档,将`disableHostCheck: true`替换为`historyApiFallback: true`和`allowedHosts: 'all'`可以解决问题。在vue.config.js中进行了相应的配置更新,以确保DevServer正常运行。

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

出现错误:options has an unknown property ‘disableHostCheck’. These properties are valid:
在这里插入图片描述
根据报错提示
在webpack 5 中disableHostCheck应该被遗弃了
查看文档了解到需将 disableHostCheck:true
替换为
historyApiFallback: true,
allowedHosts: “all”,

重新配置vue.config.js

devServer: {
historyApiFallback: true,
allowedHosts: “all”,
}

### 解决 Vue 项目中的 `Invalid Host header` 问题 当在开发环境中尝试通过外部网络访问本地运行的 Vue 应用程序时,可能会遇到 `Invalid Host header` 错误消息。这通常发生在使用内网穿透工具(如 ngrok 或 sunny-ngrok)将本地服务器暴露给互联网的情况下。 #### 修改配置文件 vue.config.js 为了允许来自特定域或所有域的请求,在项目的根目录下创建或编辑 `vue.config.js` 文件,并添加如下配置: ```javascript module.exports = { devServer: { allowedHosts: 'all', // 允许所有主机连接 proxy: { // 可选:如果需要代理某些 API 请求 '/api': { target: 'http://localhost:3000', changeOrigin: true, pathRewrite: {'^/api' : ''} } } } } ``` 此方法适用于 Webpack 版本较新的情况,其中 `allowedHosts` 参数用于指定哪些主机可以访问开发服务器[^4]。 对于旧版本 Webpack,则可能需要设置 `disableHostCheck` 属性为 `true`: ```javascript devServer: { disableHostCheck: true, // 不推荐用于生产环境 } ``` 需要注意的是,出于安全考虑不建议在生产环境下禁用主机名验证;仅应在受信任的内部测试场景中启用该选项。 #### 配置 .env 开发环境变量 另一种方式是在 `.env.development` 文件里定义一个名为 VUE_APP_DEV_SERVER_HOST 的环境变量并将其设为你想要使用的自定义域名或者 IP 地址: ``` VUE_APP_DEV_SERVER_HOST=your-custom-domain.com ``` 接着修改 `vue.config.js` 如下所示: ```javascript const HOST = process.env.VUE_APP_DEV_SERVER_HOST || 'localhost'; module.exports = { publicPath: '/', outputDir: 'dist', assetsDir: '', lintOnSave: false, devServer: { host: HOST, port: 8080, https: false, open: true, hotOnly: false, // ...其他配置项... }, }; ``` 这样做的好处是可以灵活切换不同的开发服务器地址而无需频繁更改源码。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值