2013-12-19 44 views
5

我有一個傳統的backbone.js應用程序,目前我正在對其進行改造,以便可以通過搜索引擎正確抓取。我已經決定使用prerender.io的Node.js + Phantom.js系統來爲我的支持javascript的網站提供靜態HTML呈現給搜索引擎。然而,使用prerender.io的一個要求是所有的哈希URL都被轉換爲hashbang(所以site.com/#gallery應該是site.come /#!gallery)。我的網站當前只使用散列進行網址路由。我該如何切換到hashbang?Backbone.js路由:從哈希到hashbang

回答

3

我想你必須改變指向#gallery的錨鏈接的url屬性到#!gallery並相應地修改你的路由器,

var app = app || {}; 
(function($){ 
    Workspace = Backbone.Router.extend({ 
    routes: { 
     '!gallery': 'gallery', 
     .. 
    }, 
    .. 
    gallery: function() { 
     .. 
     this.navigate('!/gallery', {trigger:true}); 
    } 
);