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

我正在做一个丰富的互联网应用程序(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。 另外,你的域可能会有用于authentication的cookie,sessionid等等 – 如果你使用cdn,你可以避免发送这些cookie以及每一个后续的静态文件请求,从而减less所有请求/响应的大小。

只需自己托pipe文件。 您可以使用connect轻松地提供静态文件

connect.static

如果您想利用caching,则可以从cdn请求受欢迎的 JavaScript文件。 jscdn和谷歌cdn是stream行的。

但是你自己的HTML / CSS文件应该在静态文件服务器上。 (如果你愿意的话,你可以使用其他的东西像nginx来通过子域来提供服务)