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 モバイルなので、答えは少し異なります。Jquery モバイルは、AJAX を使用する場合、履歴に #something を使用します。AJAX 呼び出しは、すべての<a href=...

したがって、次のようなページにリンクするだけです<a href="some.html?var1=foo"。JQM は、ページをリロードせずに ajax を呼び出し、アイテムを DOM ドキュメントに保存して再度ロードしないようにします。最後に URL が更新され#some.html、履歴がどのように管理されるかが示されます。

<a href="#something"jquery mobile が引き継ぐため、通常のページのようには機能しません。

jquery モバイルのリンクに関するすべての情報を取得するには、ここをお読みください: http://jquerymobile.com/demos/1.0a2/#docs/pages/link-formats.html

于 2011-01-21T13:50:13.863 に答える