2012-04-14 8 views
10

次の問題があります。私のバックボーンアプリケーションの一部のようなURLがありますBackbone.jsと先頭のハッシュ

ページはへのURLが変更にロードされ
site.ru/#profile 

site.ru/profile 

ので、ハッシュが失われましたが。私は、URLの開始時にこのコードのクリーンハッシュを理解したよう

var routeStripper = /^[#\/]/; 
... 
var frag = (fragment || '').replace(routeStripper, ''); 

:だから、私は、バックボーンのナビゲート機能に問題を参照してください。

このコード行を単に削除して問題を解決するのは本当ですか?これを修正する他の方法を教えてください。

TIA!

答えて

12

backboneは、pushStateを有効にした場合にのみハッシュを削除します。私はハッシュを聞いていないで、今のところ、これを修正したBackbone.history.start();

http://backbonejs.org/#Router

+0

はい、私はpushState = trueを使用します。 pushStateを削除した場合、私はゆるいですか? – dizpers

+0

すべてのpushStateコントロールは、History APIをサポートするブラウザでハッシュベースのURLを使用するかどうかを指定します。 – abraham

0

はBACKBONE.JSがルートアドレス&サブディレクトリを引き出すために、区切り文字として/ & を使用しているようです。 /フィルタリングは、 "フラグメント"を取得するために必要です。そのRegExの#を削除して、その行の残りの部分はそのまま残してください。 (&あなたが行ったコードにコメントを残してください!:)

また、ハッシュのないリンクを再送しているので、バグレポートを送信します。

+0

ところで、このJavaScriptとおそらくRegExにタグを付ける必要があります。 – tomByrer

+3

Backbone.history.start({pushState:true、hashChange:false})を使用できます。 pushStateを保ち、まだハッシュを使用するには – TYRONEMICHAEL

0

GitHub issueを参照);-)同じ問題を持って、私たちといくつかの他

変更Backbone.history.start({pushState: true});変更のように:

Backbone.history.start({ 
    pushState: true, 
    hashChange: false, 
    root: '/' 
}); 

これは私のために働いたようです。