2

我正在使用 Django 和 jQuery Mobile 构建一个移动 Web 应用程序。我的问题是 jQuery Mobile 喜欢在所有链接前面加上#,这样它就可以准确地跟踪浏览历史记录。

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

我想知道如何自动重定向指向From: /foo/1/ To: /#/foo/1/的所有 url

如果我不这样做并且有人直接转到/foo/1/,然后单击指向/bar/2/的链接,他们最终会得到这样的 URL 路径: /foo/1/#/bar /2/

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

4

2 回答 2

3

您误解了 # 的作用。

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

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

于 2011-01-20T23:17:50.113 回答
0

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

因此,您只需链接到这样的页面:<a href="some.html?var1=foo"JQM 在其上调用 ajax 而不重新加载页面并将项目存储在 DOM 文档中以不再加载。url 被更新到#some.html最后,这就是管理历史的方式。

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

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

于 2011-01-21T13:50:13.863 回答