backbone.js应用程序的服务器端(restapi服务器提供index.html)

server side for backbone.js application( serve index.html by rest api server)

本文关键字:index html 服务器 restapi 应用程序 js 服务器端 backbone      更新时间:2023-09-26

试图弄清楚如何为主干js应用程序制作一个rest api服务器。问题不在于如何跟踪请求和方法(post、get和其他)。问题是如何给客户提供index.html页面?

我发现了一个示例,其中站点的入口点是根('/')。它给出了索引页。这个解决方案的问题是,如果我先去url"/users"而不去"/",我会得到用户的json列表(没有我的整个网站)。我知道rest api就是这样工作的。。。

但我希望我的网站总是在客户第一次连接时提供索引页面。因此,我需要在服务器上跟踪它是否是第一个连接,并根据请求提供index.html和数据(如果是第一个)。或者一个服务器发送索引,另一个服务器是rest api。

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

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

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

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

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

现在,如果你的浏览器转到www.example.com并取回JSON,它就不知道该怎么处理它。同样,如果Javascript转到www.example.com/api并取回HTML,它也不知道该如何处理它。按照网络的工作方式,每个人都希望给定的URL做一件事,所以如果你建立一个网站,用户请求某个URL的次数决定了该URL返回的内容,浏览器和代码都无法工作,因为它们不知道如何处理响应。

因此,真正最好的处理方式(以及整个网站上几乎每个网站的处理方式)是为网站的不同部分提供不同的URL。如果你的REST API是www.example.com/API,你的用户永远不会在浏览器中键入该URL,因为他们甚至不知道它的存在(即使他们知道了,他们也没有理由这么做)。

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