如何允许在localhost之外访问

时间:2017-04-19 09:57:39

标签: angular typescript ng-build

如何在Angular2的localhost外部进行访问?我可以轻松地在localhost:3030/panel导航,但是当我编写10.123.14.12:3030/panel/之类的IP时,我无法导航。

你能告诉我如何解决这个问题吗?我没有使用npm(节点项目管理 - 节点安装/节点启动)来安装和运行项目。

如果您愿意,我可以提供package.jsonindex.html

17 个答案:

答案 0 :(得分:145)

使用ng serve --host 0.0.0.0,您可以使用自己的IP而非ng serve连接到localhost

修改

在较新版本的cli中,您必须提供本地IP地址

编辑2

在较新版本的cli中(我认为v5及更高版本),您可以再次使用0.0.0.0作为IP来托管网络中的任何人进行通信。

答案 1 :(得分:22)

Mac用户:

  1. 转到系统偏好设置 - >网络 - >的Wi-Fi
  2. 复制状态(通常为192.168.1.x)
  3. 下面的IP地址
  4. 将其粘贴到您的ng服务中,如:ng serve --host 192.168.1.x
  5. 然后,您必须能够通过192.168.1.x:4200在其他设备上看到您的网页。

答案 2 :(得分:12)

运行命令 - " ng serve --host = 0.0.0.0 --disable-host-check"

这将禁用主机检查并允许从外部(而不是localhost)使用ip地址

进行访问

答案 3 :(得分:5)

您还可以使用 ngrok 来检查通过隧道运行的所有HTTP流量 ,则可以使用ngrok http --host-header=rewrite 4200

进行公开

答案 4 :(得分:5)

可以帮助某人的快速解决方案:

将此行添加为开始ng serve --host 0.0.0.0 --disable-host-check的值 在您的package.json

例如:

{
"ng": "ng",
"start": "ng serve --host 0.0.0.0 --disable-host-check",
"build": "ng build",
}

然后只需执行startnpm run start

您将能够从其他本地IP访问您的项目。

答案 5 :(得分:3)

您可以使用以下命令来访问您的ip。

ng serve --host 0.0.0.0 --disable-host-check

如果您正在使用npm,并且希望避免每次都运行该命令,我们可以将以下行添加到 scripts 部分的 package.json 文件中。 / p>

"scripts": {
    ...
    "start": "ng serve --host 0.0.0.0 --disable-host-check"
    ...
}

然后,您可以使用以下命令运行您的应用,以便从同一网络中的其他系统进行访问。

npm start

答案 6 :(得分:2)

打开cmd并导航到项目位置,即您为项目运行npm install或ng serve的位置。

然后运行命令 - ng serve --host 10.202.32.45,其中10.202.32.45是您的IP地址。

您可以在10.202.32.45:4200访问您的页面,其中4200是您的端口号。

注意:如果您使用此命令投放应用,则无法访问localhost:4200

答案 7 :(得分:2)

我仅按如下所示在项目中编辑angular.json文件,

...

    "serve": {
      "builder": "@angular-devkit/build-angular:dev-server",
      "options": {
        "browserTarget": "project:build",
        "host": "0.0.0.0"
      },

...

答案 8 :(得分:2)

如果您在Docker内部遇到相同的问题,则可以在Dockerfile中的CMD以下使用。

CMD ["ng", "serve", "--host", "0.0.0.0"]

或完整的Dockerfile

FROM node:alpine
WORKDIR app
RUN npm install -g @angular/cli
COPY . .
CMD ["ng", "serve", "--host", "0.0.0.0"]

答案 9 :(得分:1)

在 Angular 版本 11(可能还有一些更早的版本)中,--public-host 选项对我有用,例如:

$ ng serve --host 0.0.0.0 --public-host app.mypublicdomain.com

答案 10 :(得分:0)

问题出在防火墙上。如果您使用的是Windows,请确保允许节点通过 enter image description here

答案 11 :(得分:0)

不需要package.json进行更改。

对我来说,它可以使用:

ng serve --host=0.0.0.0 --port=5999 --disable-host-check

主机:http:// localhost:5999 /

答案 12 :(得分:0)

使用此:

ng serve --host 0.0.0.0 --port xxxx

答案 13 :(得分:-1)

对我来说,它可以使用“ ng serve --open --host 0.0.0.0”工作,但是有警告


警告:这是一个用于测试或调试Angular应用程序的简单服务器 本地。尚未对其进行安全性审查。

将此服务器绑定到打开的连接可能会损害您的应用程序或 电脑。使用与传递给“ --host”标志的主机不同的主机可能会导致 websocket连接问题。如果这是您可能需要使用“ --disableHostCheck” 情况。

答案 14 :(得分:-1)

创建proxy.conf.json并粘贴此配置

{  
"/api/*":
    {    
        "target": "http://localhost:7070/your api project name/",
        "secure": false,
        "pathRewrite": {"^/api" : ""}
    }
}

替换:

let url = 'api/'+ your path;

从CLI运行:

ng serve  --host port.number —-proxy-config proxy.conf.json

答案 15 :(得分:-1)

  • 使用 ng serve --host<Your IP> --port<Required if any>

  • ng服务--host = 192.111.1.11 --port = 4545。

  • 您现在可以在编译结束时看到以下行。

Angular Live Development Server正在侦听192.111.1.11:4545,请在http://192.111.1.11:4545/ **上打开浏览器。

答案 16 :(得分:-3)

对于使用节点项目管理器的人来说,添加到package.json的这一行就足够了。对于角度CLI用户,mast3rd3mon的答案是正确的。

您可以添加

"server": "webpack-dev-server --inline --progress --host 0.0.0.0 --port 3000"

to package.json