【问题标题】:backbone router # is disappearing from the url主干路由器 # 正在从 url 中消失
【发布时间】:2015-10-26 15:40:03
【问题描述】:
下面这个网址,加载页面:
/app/#/rGd4FaNjg22EvTuot3SRKF1suueUSc8Lhd
(I also tried /app/#rGd4FaNjg22EvTuot3SRKF1suueUSc8Lhd )
(and also tried /app#rGd4FaNjg22EvTuot3SRKF1suueUSc8Lhd)
...然后变成
/app/rGd4FaNjg22EvTuot3SRKF1suueUSc8Lhd
如何在url中保留#?
【问题讨论】:
标签:
backbone.js
backbone-routing
【解决方案1】:
您应该使用/app#rGd4FaNjg22EvTuot3SRKF1suueUSc8Lhd,在井号后不加斜线。斜线表示 URL 中的另一个级别。
【解决方案2】:
您似乎已使用 pushState:true 选项开始 Backbone.history。我猜它在您的代码中看起来像这样:
Backbone.history.start({ pushState: true, root: '/app' });
pushState 选项会为您删除 #。
文档:http://backbonejs.org/#History
因此,如果您不希望将前端路由视为后端 url,只需将 pushState 选项设置为 false,或将其删除,因为 false 是默认值。当它是false 时,主干路由将使用# 处理。