我将IE9和PathLocationStrategy与Angular4结合使用,但它似乎不起作用。它只是附加"#“无限的时间。我试图添加history.js填充,但似乎没有任何效果。
有人能帮我使用PathLocationStrategy和IE9吗?
更新:我终于得出结论,我们不能在IE9上使用PathLocationStrategy。现在,我正在努力弄清楚如何在浏览器的其余部分使用PathLocationStrategy,并且只有在IE9存在的情况下,才切换到HashLocationStrategy。我试图在我的模块中包含以下代码:
RouterModule.forRoot(COMMON_ROUTES, { useHash: !Boolean(history.pushState) }),我验证了,!Boolean(history.pushState)在IE9中返回true,在其他浏览器中返回false。但这是行不通的。角默认为PathLocationStrategy,即使在IE9中也是如此。有人能帮忙吗?
发布于 2017-09-05 04:55:17
致因
当位置URL发生更改时,非常绿的老浏览器向服务器发送页面请求,除非更改发生在"#“之后(称为”散列“)。路由器可以通过使用散列组合应用程序中的路由URL来利用此异常.
解决方案
不幸的是没有解决办法。
正如文档中所述,HashLocationStrategy是在引导过程中启动的。
..。如果您愿意,可以在引导过程中使用覆盖HashLocationStrategy切换到。
这进一步加强了..。
您必须选择一种策略,并且需要在项目的早期进行正确的调用。一旦应用程序投入生产,以后就不容易更改了,而且在野外有大量的应用程序URL引用。
也就是说,您需要开发内容来使用特定的位置策略,而更改策略将意味着您必须在开发期间更新重要的逻辑和其他路由功能,而不是像您所希望的那样在运行时更新重要的逻辑和其他路由功能。
https://stackoverflow.com/questions/45881466
复制相似问题