0

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

我的问题是,页面中的任何操作,例如,我点击一个链接,都会调用骨干路由器。这是我希望成为单页应用程序的行为。

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

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

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

非常感谢。

4

2 回答 2

2

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

于 2012-09-07T14:41:50.097 回答
0

假设您不需要做任何 SEO 类型的东西,以便每个唯一的 URL 加载自己的元数据,只需始终提供与声明相同的 index.html。但是,如果您想根据 URL 获得不同的静态头部内容,您应该根据路径在节点内执行此操作(例如,为您滑入稍微更动态的初始视图模板的每个路由保留一个元数据数组,基于在您现有的平面 index.html 上)

于 2012-09-07T21:44:05.460 回答