Javascript backbone.js应用程序的服务器端(通过rest api服务器提供index.html)

Javascript backbone.js应用程序的服务器端(通过rest api服务器提供index.html),javascript,web-services,rest,backbone.js,webserver,Javascript,Web Services,Rest,Backbone.js,Webserver,试图找出如何为主干js应用程序创建RESTAPI服务器。问题不在于如何跟踪请求和方法(post、get和其他)。 问题是如何给客户端提供index.html页面 我发现了一个示例,其中站点的入口点是根(“/”)。它给出了索引页。这个解决方案的问题是,如果我不先转到“/”而转到url“/users”,我将得到用户的json列表(不包括整个站点)。我知道RESTAPI就是这样工作的 但我想我的网站给客户的索引页总是当他们第一次连接。 因此,我需要在服务器上跟踪它是否是第一个连接,如果是第一个连接,则

试图找出如何为主干js应用程序创建RESTAPI服务器。问题不在于如何跟踪请求和方法(post、get和其他)。 问题是如何给客户端提供index.html页面

我发现了一个示例,其中站点的入口点是根(“/”)。它给出了索引页。这个解决方案的问题是,如果我不先转到“/”而转到url“/users”,我将得到用户的json列表(不包括整个站点)。我知道RESTAPI就是这样工作的

但我想我的网站给客户的索引页总是当他们第一次连接。 因此,我需要在服务器上跟踪它是否是第一个连接,如果是第一个连接,则在请求时提供index.html和数据。或者一台服务器发送索引,另一台服务器是RESTAPI

看起来我有点困惑,希望你能帮助我)


另外,我想看看Python中的代码/框架和其他干扰的例子(尽管这并不重要,理解这个想法很重要)

您似乎对web的工作方式感到困惑

当您打开浏览器并在地址栏中键入
www.example.com
时,您的浏览器将转到
example.com
,希望找到HTML页面。不管你是第一次还是第一百次访问这个URL;你的浏览器也会做同样的事情,每次它都希望返回HTML

RESTAPI也是如此,除了使用JSON而不是HTML(或XML,或您的站点用于AJAX通信的任何内容)之外。当您有一些Javascript代码向
www.example.com/api
发出AJAX请求时,每次都会得到JSON/XML/任何东西

现在,如果您的浏览器转到
www.example.com
并获取JSON,它将不知道如何处理它。类似地,如果您的Javascript转到
www.example.com/api
并返回HTML,它将不知道如何处理它。按照web的工作方式,每个人都希望给定的URL做一件事,因此,如果您构建了一个站点,其中用户请求某个URL的次数决定了该URL返回的内容,那么您的浏览器和代码都无法工作,因为他们不知道如何处理响应

所以,处理事情的最好方法(整个网站上几乎每个网站都是这样做的)是为网站的不同部分提供不同的URL。如果您的RESTAPI位于
www.example.com/API
,那么您的任何用户都不会在浏览器中键入该URL,因为他们甚至不知道它的存在(即使他们知道,他们也没有理由这么做)


如果您真的想做一些类似于请求的事情,您可以让服务器查看请求头,然后返回HTML页面或基于它们的AJAX响应。但是,我再次强烈建议您不要使用这种方法:您只需为API使用单独的URL就可以轻松得多。

这个问题/答案似乎很相关:。尽管简单的答案是对html和json(rest)响应使用不同的路由端点。您需要来自/的json响应吗?