Angular 5:使用初始导航重新加载时出现问题

时间:2018-04-19 10:48:04

标签: angular angular2-routing

在设置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添加的尾部斜杠的页面?

任何有解决方案的人?非常感谢。

0 个答案:

没有答案