骨干路由器:摆脱URL中的#
我得到骨干路由器工作
App.Router = Backbone.Router.extend({ routes: { "todo": "todo" }, todo: function() { alert(1); } }); Backbone.history.start();
当我转到url: domain:port /#/ todo时,这个效果很好
我希望这个工作没有#在URL中,我试着把文件中提到的pushState参数。
Backbone.history.start({pushState: true});
这只是将#urlredirect到非哈希值
domain:port /#/ todo(redirect到==>)domain:port / todo
但是当我直接访问这个URL
域:端口/待办事项
它不起作用:“不能GET / todo”。
有没有什么办法,我可以使这个url没有#的工作呢?
您需要编写服务器端代码来为URL提供页面。
使用pushState
只是告诉浏览器“我已经使用JS来改变页面的内容,所以它匹配你会得到,如果你问这个url”。
它不会导致内容匹配该url,您必须将其作为单独的任务来完成。