javascript node.js backbone.js express pushstate

javascript - ¿Tiene en cuenta las rutas Pushbone de Backbone.js con el servidor express node.js?



pushstate (1)

Explicación

En primer lugar, debe saber que domain.com/#/about llamará a la ruta ''/'' de su servidor porque no lee el fragmento #. Su servidor representará la base de su aplicación Backbone.js y Backbone activará la ruta ''sobre''.

Por lo tanto, debe declarar dos rutas en Express JS:

  • /
  • /acerca de

Código

app.get(''/'', function(req, res) { // Trigger the routes ''domain.com'' and ''domain.com/#/about'' // Here render the base of your application }); app.get(''/about'', function (req, res) { // Trigger the route ''domain.com/about'' // Here use templates to generate the right view and render });

Te recomiendo 3 enlaces para la compatibilidad SEO con Backbone.js por Derick Bailey:

pushState soporte de pushState se introdujo con la actualización de la versión 0.5 de Backbone.js.

De la documentación de la columna vertebral :

Tenga en cuenta que el uso de URL reales requiere que su servidor web pueda representar correctamente esas páginas, por lo que también se requieren cambios en el programa de fondo. Por ejemplo, si tiene una ruta de / documents / 100, su servidor web debe poder servir esa página, si el navegador visita esa URL directamente. Para el rastreo completo del motor de búsqueda, es mejor que el servidor genere el HTML completo para la página ... pero si se trata de una aplicación web, simplemente represente el mismo contenido que tendría para la URL raíz y complete el resto con Backbone Vistas y JavaScript funciona bien.

Esto puede parecer una pregunta trivial, pero me pregunto si alguien me puede ayudar con algún código de servidor node.js específico (preferiblemente expreso ). ¿Cómo debo manejar estas rutas? Estoy un poco confundido.

Aquí está el extracto relevante del módulo del enrutador de mi aplicación:

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 };

Solo tengo una ruta de nivel superior y una ruta para una página sobre aquí. Entonces, ¿cómo debería configurar un servidor de nodos que me permita navegar a:

domain.com domain.com/about domain.com/#/about // <- for browsers that don''t support pushState