【问题标题】:Backbone.js Routing: From hash to hashbangBackbone.js 路由:从 hash 到 hashbang
【发布时间】:2014-01-08 08:05:58
【问题描述】:
我有一个旧版主干.js 应用程序,我目前正在对其进行改造,以便搜索引擎可以正确抓取。我已经决定使用 prerender.io 的 Node.js + Phantom.js 系统来为搜索引擎提供我的 javascript 网站的静态 HTML 渲染。然而,使用 prerender.io 的要求之一是将所有哈希 URL 转换为 hashbang(因此 site.com/#gallery 应该是 site.come/#!gallery)。我的网站目前仅使用哈希进行 url 路由。如何将其切换为 hashbang?
【问题讨论】:
标签:
javascript
backbone.js
prerender
【解决方案1】:
我想您必须将指向 #gallery 的锚链接的 url 属性更改为 #!gallery 并相应地修改您的路由器,例如
var app = app || {};
(function($){
Workspace = Backbone.Router.extend({
routes: {
'!gallery': 'gallery',
..
},
..
gallery: function() {
..
this.navigate('!/gallery', {trigger:true});
}
);