从CDN或应用程序服务器(RoR、node.js等)提供html/jss/css应用程序

Serve a html/jss/css application from CDN or application server (RoR, node.js etc)?

本文关键字:应用程序 提供 html css js jss node CDN 服务器 RoR      更新时间:2023-09-26

我正在做一个富互联网应用程序(html/js/css),它必须通过XHR/Websocket与后端应用程序服务器(RoR或node.js)通信。

我想知道将RIA文件提供给web浏览器的最佳方式是什么:将CDN或RoR/node.js作为静态文件服务器?

后者不是因为同源策略而使浏览器无法与后端服务器通信吗?

感谢

同源策略适用于请求,而不是静态文件。

您在www.test.com 上

$.get('api.someotherorigin.com/things.json', function(res){
    // I'll get a same origin policy error
});

这就是人们在这些情况下使用getJSON/jsonp的原因。它甚至适用于子域,这取决于设置方式。

cdn的好处是从一个无Cookie的、通常经过地理位置优化的源提供静态文件。在开发过程中,您几乎肯定不需要这个。

稍后的好处是,你可能只有几个服务器(或只有一个)位于一个可能有利于同一位置的人的位置,并为不靠近的人提供糟糕的RTT。此外,您的域可能会有用于身份验证、会话ID等的cookie——如果您使用cdn,则可以避免将这些cookie与后续对静态文件的每一个请求一起发送,从而减少所有请求/响应的大小。

只需自己托管文件即可。使用connect 可以很容易地提供静态文件

connect.static

如果您想利用缓存,可以从cdn请求流行的JavaScript文件。jscdn和googlecdn很受欢迎。

但是您自己的个人HTML/CSS文件应该在静态文件服务器上。(如果你想的话,你可以使用其他类似nginx的东西通过子域为它们提供服务)