从 CDN 或应用程序服务器(RoR、node.js 等)提供 html/jss/css 应用程序?
我正在做一个富互联网应用程序(html/js/css),它必须通过 XHR/Websocket 与后端应用程序服务器(RoR 或 node.js)进行通信。
我想知道将 RIA 文件提供给 Web 浏览器的最佳方法是什么:CDN 或 RoR/node.js 作为静态文件服务器?
后者不是会因为同源策略而导致浏览器无法与后端服务器通信吗?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
同源策略适用于请求,而不是静态文件。
您在 www.test.com
这就是人们在这些情况下使用 getJSON/jsonp 的原因。它甚至适用于子域,具体取决于事物的设置方式。
CDN 的优点是可以从无 cookie、通常经过地理定位优化的源提供静态文件。几乎可以肯定,在开发过程中您不需要这个。
稍后的好处是,您可能只会在一个位置放置几台(或一台)服务器,这可能有利于某个位置的人们,而对于不亲近的人来说,RTT 会很差。此外,您的域可能会有用于身份验证、sessionid 等的 cookie——如果您使用 cdn,您可以避免将这些 cookie 与静态文件的每个后续请求一起发送,从而减少所有请求/响应的大小。
Same origin policy applies to requests, not static files.
You are on www.test.com
This is why people use getJSON/jsonp in these cases. It even applies to subdomains, depending on how things are set up.
A cdn has the benefits of serving your static files from a cookieless, often geolocation optimized source. You almost certainly don't need this during development.
The benefits later on are that you are likely going to have only a few servers (or just one) located in a spot that may favor people in one location and give a crappy RTT for folks not close. Additionally, your domain is going to likely have cookies for authentication, sessionid, etc etc -- if you use a cdn, you avoid sending these cookies along with every single subsequent request for static files, reducing the over all request/response sizes.
只需自己托管文件即可。您可以使用
connect
connect 轻松提供静态文件
。 static
如果您想利用缓存,您可以从 CDN 请求流行 JavaScript 文件。 jscdn 和 google cdn 很受欢迎。
但您自己的个人 HTML/CSS 文件应该位于静态文件服务器上。 (如果需要,您可以使用其他东西,例如 nginx 来通过子域提供服务)
Just host the files yourself. You can serve static files quite easily using
connect
connect.static
You may request popular JavaScript files from a cdn if you want to take advantage of caching. jscdn and google cdn are popular.
But your own personal HTML/CSS files should be on a static file server. (You can use something else like nginx to serve those through a sub domain if you want )