Python / Django:如何在所有URL上添加#on

时间:2011-01-20 22:14:26

标签: python django mod-rewrite redirect jquery-mobile

我正在使用Django和jQuery Mobile构建移动Web应用程序。我的问题是,jQuery Mobile喜欢为所有链接添加 ,因此它可以准确地跟踪浏览历史记录。

示例:http://www.fest.com/#/foo/1/

我想知道如何自动重定向指向发件人: / foo / 1 / 收件人: /#/ foo / 1 /

的所有网址

如果我不这样做并且有人直接转到 / foo / 1 / ,则点击指向 / bar /的链接2 / ,他们最终会得到这样的网址路径: 的 /富/ 1 /#/酒吧/ 2 /

我非常希望防止这种情况发生,因为它会导致很多问题。这是最好的方法吗?

2 个答案:

答案 0 :(得分:3)

你误解了#的作用。

URL中的#是“片段”分隔符。 之后没有任何内容发送到服务器。所以没有像“foo.com#/ foo”这样的URL - 就服务器而言,它只是“foo.com”。所以你不能做任何服务器端重定向。

如果你的JS库使用片段来模拟导航,你需要使用Javascript来处理它。

答案 1 :(得分:0)

这是jquery mobile,所以答案有点不同。在使用AJAX时,Jquery mobile使用#something作为历史记录。每个<a href=...

都会引入AJAX调用

所以你只需链接到这样的页面:<a href="some.html?var1=foo"并且JQM在其上调用ajax而不重新加载页面并将项目存储在DOM文档中以便不再加载。该网址已更新为最后有#some.html,这就是历史记录的管理方式。

<a href="#something"不会像普通页面一样工作,因为jquery mobile会接管。

在此处阅读以获取jquery mobile中链接的所有信息:http://jquerymobile.com/demos/1.0a2/#docs/pages/link-formats.html