在设置Angular 5应用程序的基本路径时,我遇到了一个奇怪的问题。
澄清我的情况:我有多个html文档,每个文档都使用不同的模块,但index.html正在加载所有模块。所以实际上我的应用程序不是SPA,而是通过延迟加载独立工作的不同模块。
我希望基本href始终是当前的HTML-Document。为此,我将应用程序中的APP_BASE_HREF标记设置为以下内容:
{
provide: APP_BASE_HREF,
useValue: '/' + (window.location.pathname.split('/')[1] || '')
}
第一次访问我的应用中的页面工作正常,Angular正在加载正确的搜索模块。例如:
https://localhost:4200/suche.html
加载Angular后,它会向URL添加一个尾部斜杠,这对我来说似乎是逻辑,因为angular最初导航到根目录。
如果我用尾部斜杠打开同一页面(例如重新加载),问题就来了。如果我这样做,那么由于某种原因,URL仍然是
https://localhost:4200/suche.html/
但事实上index.html已加载并显示。
任何人都可以帮我解决这个问题。也许问题在于延迟装载模块的特殊处理。
提前多多感谢。
编辑1:
我现在发现了,发生了什么事,但我仍然无法解决问题。当我转到页面https://localhost:4200/suche.html时,浏览器正在打开页面,Angular按预期加载,通过添加斜杠进行初始导航到root。
当我现在重新加载页面时,浏览器会尝试访问https://localhost:4200/suche.html/,这是一个非现有目录,因此浏览器会回退到index.html
我无法解释如何解决这个问题,我无法重新加载带有由angular添加的尾部斜杠的页面?
任何有解决方案的人?非常感谢。