从backbonejs和nodejs调用路由器

时间:2012-09-07 10:58:21

标签: javascript node.js backbone.js pushstate

我有一个网络应用程序。基本上它是一个单页面的应用程序。初始页面是一个名为index.html的平面html文件,其中一个脚本声明指向require.js。从那里我使用backbonejs来处理客户端逻辑。 index.html由nodejs提供服务。

我的问题是,页面内的任何操作,例如,我点击链接,调用骨干路由器。我希望成为单页应用程序的行为是什么。

例如: www.testserver.com 然后我点击一个链接,该链接显示注册 www.testserver.com/register 的模式屏幕,通过骨干路由器推送状态

问题在于,我不是在应用中访问某个链接,而是直接在浏览器中打开网址。例如,我在浏览器中粘贴 www.testserver.com/register 。然后将请求发送到我的节点路由器。我假设这是正确的行为,因为页面还不存在,这意味着骨干路由器也不存在。

我想知道,正确的解决方法是什么。当我访问此链接时,我该怎么办?如何将正确的行为传递回我的骨干应用程序。

非常感谢。

2 个答案:

答案 0 :(得分:2)

服务器应始终返回index.html页面。当您在Backbone中启动路由器时,路由器会处理导航并调用您为实际路由定义的功能。

答案 1 :(得分:0)

假设您不需要执行任何搜索引擎优化类型的东西,以便每个唯一的URL加载自己的元数据,只需始终提供与所述的相同的index.html。但是,如果您希望基于URL具有不同的静态头部内容,则应该基于路径在节点内执行此操作(例如,为每个路径保留一个元数据阵列,您可以将其放入稍微更动态的初始视图模板中,基于在您现有的平面index.html)