我不知道如何完全解释我想要实现的目标,但让我填补你。
我在路由器上注册了路线。
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
但是当我点击浏览器的地址栏,从网址中删除哈希时,我想做这项工作。
http://example.com/make/search/form/87463636234/question/2
不幸的是现在不行,我收到了一个错误页面。
希望你能帮助我。
提前致谢
更新: 经过进一步研究,重写规则似乎是解决方案,但是我不擅长,也许任何人都可以指导我如何做到这一点。感谢
答案 0 :(得分:1)
您必须配置您的网络服务器,以便通过所有网址(包括http://example.com/make/search/form/87463636234/question/2
)为您的html网页提供骨干应用程序。如果您正在使用某个Web框架,只需将其配置为返回此页面而不是404错误。