骨干路由器:去掉 URL 中的#

2023-12-07

我正在让主干路由器工作

App.Router = Backbone.Router.extend({
      routes: {
        "todo": "todo"
      },
      todo: function() {
        alert(1);
      }
});
Backbone.history.start();

当我转到 url 时,这效果很好:域:端口/#/todo

我希望它在 URL 中没有 # 的情况下工作,我尝试按照文档中提到的方式放置 PushState 参数。

    Backbone.history.start({pushState: true});

这只是将 # url 重定向到非哈希值

域:端口/#/todo(重定向到==>)域:端口/todo

但是当我直接访问这个网址时

域:端口/todo

它不起作用:“无法获取/todo”。

有什么办法可以让这个网址在没有 # 的情况下工作吗?


您需要编写服务器端代码来交付 URL 的页面。

Using pushState只是告诉浏览器“我已经使用 JS 来更改页面的内容,因此它与您请求此 URL 时得到的内容相匹配”。

它不会导致内容与该 URL 匹配,您必须将其作为单独的任务来完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

骨干路由器:去掉 URL 中的# 的相关文章

随机推荐