Поддержка pushState
появилась в обновлении Backbone.js версии 0.5.
Из документации по магистрали:
Обратите внимание, что использование реальных URL-адресов требует, чтобы ваш веб-сервер мог правильно отображать эти страницы, поэтому также требуются внутренние изменения. Например, если у вас есть маршрут /documents/100, ваш веб-сервер должен иметь возможность обслуживать эту страницу, если браузер посещает этот URL-адрес напрямую. Для полной сканируемости поисковой системы лучше всего, чтобы сервер генерировал полный HTML-код для страницы... но если это веб-приложение, просто рендеринг того же содержимого, что и для корневого URL-адреса, и заполнение остального с помощью Backbone. Представления и JavaScript работают нормально.
Это может показаться тривиальным вопросом, но мне интересно, может ли кто-нибудь помочь мне с некоторыми конкретными (предпочтительно express) 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