1

听起来可能有点复杂。

这是 SinglePage,启用 pushState 的应用程序。我有一条路线,用于配置:

    routes: {
        '': 'dashboard',
        'configure/sites/:id': 'configure',
        'configure/sites/:id/:section': 'configureSection'
    },

我正在使用 tbranyen/backbone-boilerplate方式来导航网址。如果我从仪表板单击 href a href="configure/sites/33,则视图呈现良好。在浏览器 URL 中,我可以看到“localhost:12345/configure/sites/33”。

在配置视图上,我有一个菜单,<a href=里面有一些。

<ul class="nav configure-nav">
<li>
    <a href="overview" class="overview">Overview</a>
</li>
<li>
    <a href="configuration" class="configuration">Configuration</a>
</li>

问题是,如果我尝试点击这些链接,它们id就会消失。

浏览器地址栏

预期的href:http://localhost:12345/configure/sites/33/configuration

实际href:http://localhost:12345/configure/sites/configuration

你能解释一下发生了什么以及如何解决它吗?

4

2 回答 2

0

我不知道这是否能解决您的问题,但如果您正在制作单页应用程序,您应该在“localhost:12345/”之后放置一个 hashbang,否则所有这些请求都会发送到服务器。

于 2012-10-02T04:56:09.120 回答
0

这是由于相对和绝对链接的工作方式。在您的情况下,href 是相对于您路径中最近的“目录”的(为了保持文件系统类比, :id 部分可以被视为一个文件)。

如果您在路由中添加尾部斜杠,则概述和配置链接将被正确植根。

于 2013-02-03T14:44:24.283 回答