在我的单页骨干的应用程序,我无法让我的长网址,以正确路由在IE中。 该嵌套多个级别的任何URL,直接加载它们时,没有收到合适的哈希fallbak。
顶级网址做工精细...
when I load: domain.com/resource
in IE I get: domain.com/#resource (as expected)
导航(应用程式)正常工作...
when I click on a link to: domain.com/resource/12345
IE sends me to: domain.com/#resource/12345 (as expected)
但更深层次的访问网址,直接打破了页
when I load: domain.com/resource/12345
in IE I get: domain.com/resource/12345 !! this is incorrect, and the page doesn't load
更新:
这是IE9
我不知道,如果你已经在过去的3小时暂存改变任何东西,但我观察到的问题是与此相关的问题
引用CSS文件时,IE不支持在基础元件的相对路径
当你的页面请求http://stage.change4cancer.org/profile/647955793 ,它就会在页面实际的HTML。 现在,无论它是否是应该重定向到#资料/ 647955793又是另一回事(为什么你要做到这一点你已经加载的内容后,我不知道),但让我解释一下。
在从HTML http://stage.change4cancer.org/profile/647955793您有以下标签:
<base href="/" />
但IE9不会尊重标签,除非它有一个完整的URI。 因此,所有的JS,CSS等的路径是错误的。 代替
http://stage.change4cancer.org/js/libs/backbone-0.9.2.min.js
它的请求
http://stage.change4cancer.org/profile/js/libs/backbone-0.9.2.min.js
这实际上又回到某种形式的另一个html页面
因为没有你的外部JS的加载,当然事情会出问题。
尝试这个:
Backbone.history.start({ pushState: Modernizr.history, silent: true });
if(!Modernizr.history) {
var rootLength = Backbone.history.options.root.length;
var fragment = window.location.pathname.substr(rootLength);
var search = window.location.search;
Backbone.history.navigate('/#' + fragment + search, { trigger: true });
} else {
Backbone.history.loadUrl(Backbone.history.getFragment())
}