JSレスポンスでこのタイプの回線を使用しています
if (history && history.pushState){
history.pushState(null, null, '<%=j home_path %>');
}
しかしback
、ブラウザをクリックすると、前のページではなく、応答のJSコードが表示されます。
最後のURLのページを再リクエストするように戻るボタンを機能させる方法はありますか(以前home_path
はpushStatedでしたか?
更新:
私はこれを見つけました..他にも同じ問題があるようです..History.jsもそれを修正しません
そこでコメントのいくつかを確認するために..これはクロームでのみ発生します
私が思うこと
このすべての根本は、popstateが同じタイプのpushstateドキュメント(js応答)を要求していることだと思います。実行する必要があるのは、popstateがhtml応答を要求することです。方法がわかりません。
その他の更新:
http://railscasts.com/episodes/246-ajax-history-stateを見て、使用することに言及しています
$(window).bind("popstate", function() {
$.getScript(location.href);
});
これで問題は解決しますが、 ajaxキャッシュなしでjQuery $ .getScript()を理解 すると、タイムスタンプが追加されます。これによりURLが汚染されます。オフにすると、同じ効果で再び機能しなくなります。
誰もがこれを解決する方法を知っていますか?
さらに多くのアップデート
私はインターウェブ全体で問題の痕跡を追跡し、レールの問題を示すクロムの問題(Firefoxは正常に動作します)と、応答にVaryヘッダーを含めないことに関するrails-ujsの問題で終わりました
例はここにあります