0

我不知道如何完全解释我想要实现的目标,但让我来补充一下。

我在路由器上注册了路由。

routes: {
    "" : "home",
    "form/:formID/question/:questionID" : "showResults"
}

我启用了 pushState

window.base = '/make/search/';
Backbone.history.start({pushState: true, root: base});

当我使用并直接在代码上运行时。

router.navigate('form/87463636234/question/2', {trigger: true});

它被重定向到这个 URL

http://example.com/make/search/form/87463636234/question/2

哪个是对的。所以是的,一切都很好,但是我真正想要的东西当我从地址栏访问链接时,我希望它正确加载页面,通常我们使用 (#) 哈希来完全导航路由.

这个有效:

http://example.com/make/search/#form/87463636234/question/2

但是当我点击进入浏览器的地址栏时,我想完成这项工作,摆脱 URL 中的哈希。

http://example.com/make/search/form/87463636234/question/2

不幸的是,现在不是,我收到一个错误页面。

希望您能够帮助我。

提前致谢

更新:经过进一步研究,重写规则似乎是解决方案,但是我对此并不擅长,也许有人可以指导我如何做到这一点。谢谢

4

1 回答 1

1

您必须配置您的网络服务器以通过所有 url 为您的 html 页面提供主干应用程序,包括http://example.com/make/search/form/87463636234/question/2. 如果您正在使用某些 Web 框架,只需将其配置为返回此页面而不是 404 错误。

于 2013-07-23T09:41:34.870 回答