バックボーン ルーターと pushState に問題があります。
これが私のルーターです: https://gist.github.com/1672111
さて、私はいくつかのビュー、モデル、コレクション、pushState を備えたルーターを持っていますが、それは魅力的に機能します。
ユーザーが/item
(またはルート(/
)にさえ)行くと、Nodejsはページ全体をレンダリングします(ユーザーがjavascriptを有効にしているか、googlebotがページをスクレイピングするようになるかはわかりません)。
ただし、ユーザーが JavaScript を有効にしている場合は、バックボーン ルートがトリガーされ、ページが ajax 呼び出しから再レンダリングされます。(ajax 呼び出し) が必要であることはわかっていますが、どうすればよいですか?
ビューでは、再レンダリングを非表示にするために呼び出す必要が
$( this.el ).hide()
ありますか?サーバー側では、メイン コンテンツをレイアウトだけでレンダリングするべきではありませんか? この場合、Googlebot には別のコンテンツを提供し、通常のユーザーにはレイアウトだけを提供する必要がありますか? (私見は最善の解決策ではありません)
最後に、render メソッドをモデル変更イベントにバインドする必要があります。ie8 ユーザーは pushstate を持たず、サーバー側に送信されないハッシュ ベースのナビゲーションを使用しているためです。
ありがとう
参考までに: これは backbonejs メーリング リストからのクロスポストです: https://groups.google.com/group/backbonejs/browse_thread/thread/17c708f4429dcd73