0

我正在开发将 html5mode 设置为 true 的 Angular 应用程序。一切都很好,它甚至有响应式模板。然而,在测试期间,我遇到了不支持 History API 的浏览器的可怕错误。想象一下我有像这样的网址

http://www.example.com/en/

或者

http://ww.example.com/en/tourist-routes/

使用历史 API 一切都按预期工作。但是当存在回退模式时,它会导致像这样的无限刷新循环。

http://www.example.com/en/#!/en - the expected behavior
http://www.example.com/en#!/en#!%2Fen
http://www.example.com/en#!/en#!%2Fen%23!%2Fen - and so on 

就像它试图将“现代” url 重写为 hashbang 一样。

当然,遇到这个问题的不止我一个。然而,大多数解决方案包括指定

<base href="/" />

标记在头上。不幸的是,这对我不起作用。但是,如果我在基本标签 href 中提供请求的 uri,我可以获得一些工作链接。它不能完全工作,而且它是丑陋的黑客。另请注意, /en 不是 Angular 应用程序所在的目录!

提前感谢您的帮助....

4

1 回答 1

0

嗯,我想通了。问题不在于 hashbang 本身。我在后端解析 url 以提供配置等参数之一,只有一个强制性是语言。但是由于 hashbang 重定向,它被剥离,系统试图在 url 中强制使用默认语言。

于 2014-08-26T10:34:22.123 回答