Angular删除某些路由的基本href

Angular删除某些路由的基本href,angular,.net-core,Angular,.net Core,我有一个问题,我们的Angular应用程序在导航到某个组件时会删除/忽略基本href。 我们使用以下命令构建应用程序: ng b --prod --base-href /some-base/ 当部署到我们的开发和测试环境中时,一切都按预期工作。 使用角度路由器,我被导航到正确的位置 this.\u路由器.导航(['/register'])-> this.\u路由器。导航(['/other'])-> 但是,有一个组件在导航后地址栏中的base href消失了。 它设法导航到正确的组件,页面正常工

我有一个问题,我们的Angular应用程序在导航到某个组件时会删除/忽略基本href。 我们使用以下命令构建应用程序:

ng b --prod --base-href /some-base/
当部署到我们的开发和测试环境中时,一切都按预期工作。 使用角度路由器,我被导航到正确的位置

this.\u路由器.导航(['/register'])
->
this.\u路由器。导航(['/other'])
->

但是,有一个组件在导航后地址栏中的base href消失了。 它设法导航到正确的组件,页面正常工作。但是地址栏中的URL现在已断开,因为它不包含基本href。 在
this.\u router.navigate(['/breaked'])
URL在哪里(哪里有
/some base/
go?)

由于断开的URL,此页面上的任何刷新现在都将显示404。 我不确定这是角度布线问题还是其他地方的问题

这是一款带有角度SPA的.NET Core 3.1应用程序。我们的开发和测试环境托管在IIS上


任何关于如何解决此问题的提示都将不胜感激。

最好在angular project的index.html中设置基本href


像这样

我发现了我的问题。在
/breaked
-页面子组件的
ngOnInit()
中,有一个调用修改了URL:

window.history.pushState({}, 'Placeholder', this._router.url);

// `Placeholder` was not the original text, just replaced for demo purposes

我使用了在中找到的调试技巧来确定历史状态是否有任何更改。

我认为这无助于解决我的问题。设置
对我来说似乎很奇怪。默认值为
是。这只是一个示例,您可以在其中设置自己的。您能看到生成的index.html中的基本href吗?当您构建应用程序时,您的参数应将其设置为您编写的内容。检查一下。此外,您是否100%复制了该问题?当您手动(在浏览器中写入url)到
https://test.myawesomeapp.com/some-base/broken
?如果你通过点击一个链接来复制它,你能显示这个链接的代码吗?您可能同时拥有一个href和一个router.navigate…我检查了生成的
index.html
,结果与预期一致。我想您已经了解了href和router.navigate。下面是运行的代码(修改为使名称通用):您是否尝试过使用
按钮更改
标记?所以你不会有任何href?是的,用一个按钮尝试,我得到相同的行为。有趣的是,只需在浏览器或
window.history.back()
I中单击后退,URL就会更改为正确的URL。从到