如何使使用 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_route或www.example.com#search 用 Router.js
触发函数
我正在用 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_route或www.example.com#search 用 Router.js
触发函数