Angular部署IIS虚拟目录后HTTP请求Base Url缺失原因咨询
问题原因解析
首先明确:--base-href和--deploy-url仅负责Angular静态资源(JS、CSS、图片等)的加载路径,完全不影响HttpClient发起的HTTP请求路径。
当你使用/api/users/IsOutboundAgent这种开头带/的路径时,Angular的HttpClient会默认将其解析为当前域名的根路径,也就是直接拼接在www.mytestapp.com/之后,不会自动带上/crm。原因如下:
- 开头带
/的路径属于绝对路径,在HTTP请求规则里,这类路径的基准就是域名根目录,和Angular的base-href配置无关联 - Angular的
base-href是给路由、静态资源加载逻辑用的,和HTTP请求的路径解析是两套独立的机制
举个直观对比:
- 你的
--base-href "/CRM"配置会让Angular从www.mytestapp.com/CRM/加载打包后的JS、CSS文件 - 但
HttpClient遇到/api/xxx时,只会识别为www.mytestapp.com/api/xxx,不会自动追加CRM前缀
总结:Angular确实默认会把带/的绝对路径请求发送到域名根目录,不会自动继承base-href的路径。
内容的提问来源于stack exchange,提问作者Mervyn Ludick
相关产品推荐
相关产品推荐

