如何使用Backbone制作静态网站会响应网站的动态网址

时间:2016-03-01 23:43:02

标签: javascript backbone.js backbone-routing

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

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

虽然我现在设置了路由器,但我只能在应用程序中触发网址更改:

router.navigate( "to_here" );

但如果我在浏览器的网址栏中输入www.example.com/to_here,我会收到错误消息:“此服务器上找不到请求的URL / to_here。”

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您需要将网络服务器设置为始终以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;
    }
}

答案 1 :(得分:1)

在Backbone中,当用“#”开头时,你会从浏览器中“抓住”这个网址。所以,即使你的路由器也是这样的:

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

如果您想根据浏览器网址执行每项功能,则必须将 www.example.com#this_route www.example.com #search 写入使用Router.js

激活函数