You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

无法在localhost:4200部署Angular Web应用,寻求解决办法

解决Angular服务启动后无法访问localhost:4200的问题

我之前也碰到过这种头疼的情况,折腾了好几个小时才找到解决办法,给你几个按优先级排序的排查方向,试试能不能搞定:

  • 先绕开localhost解析问题
    别死磕localhost了,直接访问http://127.0.0.1:4200试试——有时候系统里localhost的DNS解析会抽风,用回环地址大概率能绕开这个坑。另外换个浏览器打开,比如从Chrome切到Edge,排除浏览器缓存、插件搞鬼的可能。

  • 检查4200端口是否被占用
    打开命令提示符,运行这个命令查端口占用:

    netstat -ano | findstr :4200
    

    如果输出里有其他进程ID,说明4200端口被别的程序占了。要么打开任务管理器找到对应进程杀掉,要么换个端口启动Angular:

    ng serve --port 4201
    
  • 彻底清理Angular缓存和依赖
    有时候旧缓存会导致各种诡异问题,执行以下命令彻底清理后重新安装依赖:

    ng clean
    npm cache clean --force
    # Windows系统用下面两行删除依赖文件
    rmdir /s /q node_modules
    del package-lock.json
    # macOS/Linux用下面两行
    # rm -rf node_modules package-lock.json
    npm install
    ng serve
    
  • 排查防火墙和代理拦截
    暂时关掉Windows防火墙或者你装的第三方杀毒软件,看看是不是它们拦截了本地请求。另外如果开了代理或者VPN,也先关掉——代理经常会把本地请求转发出去,导致你访问不到本地服务。

  • 验证服务是否真的在正常监听
    用curl命令测试一下(没装curl的话,直接用PowerShell的Invoke-WebRequest http://localhost:4200):

    curl http://localhost:4200
    

    如果能返回HTML内容,说明服务本身没问题,问题肯定出在浏览器端;如果连curl都访问失败,那可能是Angular服务启动时加了--host之类的参数限制了访问,检查一下你的启动命令有没有额外配置。

内容的提问来源于stack exchange,提问作者Rahul Verma

火山引擎 最新活动