我有以下问题。我的Backbone应用程序的某些部分具有以下URL:
site.ru/#profile
当页面加载时,URL更改为:
site.ru/profile
所以,哈希丢失了。所以,我在Backbone的导航功能中看到了问题:
var routeStripper = /^[#\/]/;
...
var frag = (fragment || '').replace(routeStripper, '');
据我所知,这段代码在URL的开头清理一个哈希。
是否真的可以简单地删除这行代码来解决问题?你能告诉我其他一些解决方法。
TIA!
答案 0 :(得分:12)
如果启用pushState,Backbone只会删除哈希值。
将Backbone.history.start({pushState: true});
更改为Backbone.history.start();
答案 1 :(得分:0)
似乎Backbone.js正在使用 / & #作为分隔符,提取根地址&子目录。 / 过滤需要tp stau tp获取“片段”。尝试删除该RegEx中的#,但保留该行的其余部分。 (并在代码中留下评论!)
我还会提交错误报告,因为它重新发送没有哈希的链接。
答案 2 :(得分:0)
遇到同样的问题,还有其他一些问题;-)(见GitHub issue)
我现在已经解决了这个问题,因为没有听到哈希变化,如下所示:
Backbone.history.start({
pushState: true,
hashChange: false,
root: '/'
});
这似乎对我有用。