我想在客户端使用Ember.js构建单个页面应用程序,并使用Sails.js构建REST API。
我想将客户端与服务器完全分开,并且想要在CDN或s3中托管所有客户端组件(css,img和index.html),而服务器可能会托管在Horoku上。
如何避免跨域问题?使用CNAME可能吗?
这是常见做法吗?
此类部署过程可以使用哪些工具?
谢谢!
答案 0 :(得分:1)
您可以使用Cross-Origin Resource Sharing (CORS)。 CORS是Web服务器允许Web浏览器知道允许哪些第三方域(来源)访问其内容的一种方式。所以基本上,你要确保你使用的任何CDN都支持CORS头,这样你就可以告诉CDN将加载资源的服务器的域。
这是一篇关于为Amazon S3启用CORS的文章。它基于使用CDN来服务器Web字体,但这个概念同样适用于所有受保护的文件(即除了CSS之外的所有内容,HTML中加载的图像和Javascript文件)。
你也可以使用另一个Sails服务器作为你的CDN,因为它支持开箱即用的CORS(文档here)。可能需要进行一些调整来完成高端CDN所做的所有花哨的缓存,但它可以完成!