2014-12-19 132 views
0

使用核心骨干路由器时,有没有一种简单的方法可以从url中删除“#”?现在我有一个像这样的网址:somesite.com/#some_back_bone_route/:blog_title我想要:somesite.com/some_back_bone_route/:blog_title。这可能吗?删除骨干路由中的“#”

我看过的每个地方都没有给出明确的答案或方向,说明如何实现这个甚至是可能的状态,甚至是文档都围绕着这个问题。

想法?

+1

如果您从链接中删除#,它会向您的Web服务器发送请求。 – 2014-12-19 00:40:04

+0

theres没有办法将其删除,但有骨干“行为”就像它在那里?它阻止了我能够在某些页面上做锚点标签等事情。 – TheWebs 2014-12-19 00:42:06

+0

'#'本质上是一个允许单页网站工作的锚定标记。而不是发送数据到服务器,他们转移到另一个页面(类似于移动到锚点)。你必须用另一种方式使用JavaScript移动到你的锚点。 – orange 2014-12-19 00:49:54

回答

1

除了我的上述评论,使用现代浏览器(和历史API),可以不在URL中使用散列。看看http://backbonejs.org/#Router(关键字:pushState)。

但是这种方法有一些注意事项:您的后端可能需要是changed

注意,使用真实的URL需要你的Web服务器能够 正确渲染那些页面,因此后端改变是必需的 好。例如,如果您的路由为/ documents/100,则如果浏览器直接访问该URL ,则您的网络服务器必须能够提供该页面。