我正在创建一个带有Backbone的静态站点,它只有一个文件作为入口点(index.html)。我想知道如何让网站响应网站的任何外部网址?例如
www.example.com/this_route www.example.com/search
虽然我现在设置了路由器,但我只能在应用程序中触发网址更改:
router.navigate( "to_here" );
但如果我在浏览器的网址栏中输入www.example.com/to_here,我会收到错误消息:“此服务器上找不到请求的URL / to_here。”
感谢您的帮助
答案 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
激活函数