我是这两种技术的新手,我想知道如何配置我的应用程序的最佳方式。我想没有hastags并只使用pushState。另外,从我最好的阅读,在渲染服务器端和客户端之间混合,但我不知道如何设置它。我已经想出了如何一个或另一个但不能在一起。
截至目前,这里是我所在的地方:
快速路线
app.get('/', site.index);
app.get('/product/:id', wiki.show);
再次使用pushState可以正常工作,但现在如何将两者结合起来?
答案 0 :(得分:1)
要创建混合客户端/服务器应用程序,您希望客户端和服务器都能够呈现每个视图。当用户访问您的站点时,服务器将呈现视图并将html发送给用户。此时,客户端应用程序加载,任何相关链接应被拦截并替换为主干导航。
$(document).on('click', 'a:not([data-bypass])', function(e){
href = $(this).prop('href')
root = location.protocol+'//'+location.host+'/'
if (root===href.slice(0,root.length)){
e.preventDefault();
Backbone.history.navigate(href.slice(root.length), true);
}
});
这一行代码,一旦骨干应用程序启动,将捕获所有锚标签,而不会在客户端应用程序中使用数据旁路属性和消防路由功能,而不是将该页面的请求发送到服务器。添加数据旁路属性以创建不会触发路由功能的链接。