我有一个Angular 应用程序,我托管在IIS的测试服务器上。它运行在.net核心后端。应用程序托管在虚拟目录上,例如www.myTestApp/crm(其中组成www.myTestApp)。在构建应用程序时,我使用以下命令:ng build --base-href“/CRM”--deploy-url“/CRM/”--prod。
我的angular app的Http请求是从www.mytestapp.com/而不是www.mytestapp.com/crm触发的。在这种情况下,即使在构建时我指定它应该是/crm,angular如何确定基url?
下面是我的一个http请求的例子:
return this.http
.get("/api/users/IsOutboundAgent")
.pipe(map((data: any) => {
this.isOutboundAgent = data;
return this.isOutboundAgent;
}));
我知道一个解决方案是在每个http请求之前有一个全局变量,可以根据环境变量设置,甚至使用http拦截。我只是试图理解为什么“crm”部分被省略了。当没有指定路径时,angular是否默认使用不带路径的域名?
1条答案
按热度按时间nnsrf1az1#
问题是在我的http请求中有一个前导斜杠添加到请求中。这导致url相对于网站的根目录,基本上忽略了/crm部分。
我注意到的另一件事是,在设置基本标记时,还建议添加一个尾随斜杠。
Relative URL slash when using base tag
相对URL约定