如何使使用 Backbone 制作的静态站点响应站点的动态 URL

How to make a static site made with Backbone respond to dynamic urls to the site

我正在用 Backbone 创建一个静态站点,它将只有一个文件作为入口点 (index.html)。我想知道如何让网站响应任何 external url 到网站?例如

www.example.com/this_route www.example.com/search

虽然我现在确实设置了路由器,但我只能从应用内触发 url 更改:

router.navigate( "to_here" );

但是如果我在浏览器的 url 栏中键入 www.example.com/to_here,我会收到错误消息:"The requested URL /to_here was not found on this server."

感谢您的帮助

您需要将网络服务器设置为始终响应 index.html

我将 nginx 用于此目的并遵守以下规则,它始终为 index.html 处理任何此类请求 localhost:8080/to_here

server {
    listen       8080;
    server_name  localhost;

    location / {
        root   /path/to/folder/with/files;
        try_files $uri /index.html;
    }
}

在 Backbone 中,当它们以“#”开头时,您 "catch" 来自浏览器的 url。所以,即使你的路由器也是这样的:

routes : {
          "this_route":"exampleFunction",
          "search":"searchFunction"
      }

如果你想根据浏览器执行每个功能url,你必须写www.example.com#this_routewww.example.com#search 用 Router.js

触发函数