ページ リダイレクトと同様に、AJAX 制御の Django Web アプリケーションのページ読み込み時に URL フラグメントを設定しようとしています。
意図した動作は次のとおりです。ユーザーが をロードするmyapp.com
と、フラグメントを に変更しmyapp.com/#/default/path
ます。これにより、コンテンツの変更がトリガーされます。
jQuery を使用した現在の実装は次のとおりです。
if (!window.location.hash) {
window.location.href = (window.location.pathname === "/")
? $("html").data("default-hash")
: hashify(window.location.pathname);
} else {
$(window).trigger('hashchange');
}
この場合、デフォルトのフラグメントは data-* 属性として に含まれており<html>
、文字列の前に追加されるhashify()
関数です。/#
サーバーから単純に 302 リダイレクトを返し、次のようにパス名をハッシュに変換できるようにしたい:
if (!window.location.hash) {
window.location.href = hashify(window.location.pathname);
} else {
$(window).trigger('hashchange');
}
現在の実装では、予期される動作ごとに URL が変更されます。しかし、2 番目の方法 (リダイレクトを使用) を試すと、URI はmyapp.com/default/path/#/default/path
.
誰かが以前にこの問題に遭遇したことがありますか、または問題が何であるかについて何か考えがありますか?
ありがとう!