pushState
サポートはBackbone.jsのバージョン0.5アップデートで導入されました。
バックボーンドキュメントから:
実際のURLを使用するには、Webサーバーがそれらのページを正しくレンダリングできる必要があるため、バックエンドの変更も必要であることに注意してください。たとえば、/ document / 100のルートがある場合、ブラウザがそのURLに直接アクセスすると、Webサーバーはそのページを提供できる必要があります。完全な検索エンジンのクロール可能性を得るには、サーバーにページの完全なHTMLを生成させるのが最善です...しかし、それがWebアプリケーションの場合は、ルートURLと同じコンテンツをレンダリングし、残りをBackboneで埋めます。ビューとJavaScriptは正常に機能します。
これは些細な質問のように思えるかもしれませんが、誰かが特定の(できればエクスプレスの)node.jsサーバーコードを手伝ってくれるかどうか疑問に思っています。これらのルートをどのように処理すればよいですか?私は少し混乱しています。
これが私のアプリのルーターモジュールからの関連する抜粋です:
var Router = Backbone.Router.extend({
routes: {
'': 'index',
'about': 'about'
},
index: function() {
indexView.render();
},
about: function() {
aboutView.render();
}
});
var initialize = function() {
var router = new Router;
Backbone.history.start({ pushState: true });
}
return {
initialize: initialize
};
ここにはトップレベルのルートと概要ページのルートしかありません。では、次の場所に移動できるようにするノードサーバーをどのように設定する必要がありますか。
domain.com
domain.com/about
domain.com/#/about // <- for browsers that don't support pushState