Vuejs应用程序显示无效的主机标头错误循环

iqjalb3h  于 2022-10-06  发布在  Nginx
关注(0)|答案(9)|浏览(105)

我在自己的开发服务器上运行了一个vuejs应用程序,现在我可以通过机器的公共IP访问站点,但在使用nginx指向它的域名后,它在控制台中显示错误循环

error in console

无效的主机标头[WDS]已断开连接!

由于这一点,脚本、样式注入和自动重新加载不起作用。

  • 开发服务器配置*
dev: {
  assetsSubDirectory: "static",
  assetsPublicPath: "/",
  disableHostCheck: true,
  host: "0.0.0.0", // '192.168.2.39',//can be overwritten by 
  process.env.HOST
  port: 8080,
  autoOpenBrowser: false,
  errorOverlay: false,
  notifyOnErrors: false,
  poll: true, 
  devtool: "cheap-module-source-map",
  cacheBusting: true,
  cssSourceMap: true
},
  • 域名的nginx配置*
server
{
  listen 80 ;
  listen [::]:80;
  server_name prajin.prakash.com;
  location / {
        proxy_pass http://localhost:8081;
  }
}
lkaoscv7

lkaoscv71#

我认为您需要更改vue.config.js

module.exports = {
  devServer: {
    disableHostCheck: true
  }
}
mkshixfv

mkshixfv2#

通常不建议使用disableHostCheck: true(因为它可能会导致安全问题),除非您了解并接受风险。

请尝试设置webpack配置,如下所示:

在vue.config.js的应用程序根目录中添加

module.exports = {
  devServer: {
    public: 'subdomain.domain.ext:port'
  }
};

注意:适用于在vuejs+nginx上运行的应用程序

ugmeyewa

ugmeyewa3#

在webpack-dev-server@v3中:

module.exports = {
  devServer: {
    disableHostCheck: true,
  },
};

在webpack-dev-server@v4中,选项disableHostCheck已删除,请改用allowedHosts

module.exports = {
  devServer: {
    // 'auto' | 'all' [string] here
    allowedHosts: 'all',
  },
};

请参阅此处的文档https://webpack.js.org/configuration/dev-server/#devserverallowedhosts

8i9zcol2

8i9zcol24#

2022年2月更新:

在工程根目录下创建**vue.config.js**:

然后,将下面的代码粘贴到**vue.config.js**:

module.exports = {
  devServer: {
    disableHostCheck: true
  }
}
  • 不要忘记重启服务器,否则更改不会反映出来。*
z4bn682m

z4bn682m5#

对不起,这是我的错误,我忘了在
Build/WebPack.dev.conf.js

添加以下内容解决了我的问题

disableHostCheck: config.dev.disableHostCheck,
pw9qyyiw

pw9qyyiw6#

我的配置:projects/vue-try/node_modules/@vue/cli-service/lib/options.js

130+行

DevServer:{disableHostCheck:True,host:‘0.0.0.0’,https:False}

1qczuiv0

1qczuiv07#

“vue”:“^3.2.13”,

“@vue/cli-service”:“~5.0.0”,

module.exports = {
  devServer: {
    allowedHosts: "all",
  },
};
vm0i2vca

vm0i2vca8#

您需要更改vue.config.js文件。它位于您的项目根目录中(在Package.json旁边)。

v3:

module.exports = {
  devServer: {
    disableHostCheck: true,
  },
};
v4:

module.exports = {
  devServer: {
    allowedHosts: "all",
  },
};

编号:https://github.com/webpack/webpack-dev-server/blob/master/migration-v4.md

6vl6ewon

6vl6ewon9#

我认为您需要这样更改Nginx的配置

server {
  server_name prajin.prakash.com;
  listen 80;
  listen [::]:80;

  location / {
    proxy_pass http://localhost:8080;
    proxy_http_version 1.1;
  }
  location /sockjs-node {
    proxy_pass http://localhost:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
  }
}

编辑:

为WebSocket和普通请求添加了单独的代理。

相关问题