我正在部署一个由静态(营销)站点和动态应用程序组成的 Web 应用程序。
我的目标是:
- 分离动态和静态内容。更新静态站点不应重新部署代码;更新应用程序不应触及静态站点。
- 让它看起来都生活在同一个 URL 上,例如 www.mysite.com
想想 Twitter 是如何工作的:http: //twitter.com/privacy转到由法律/营销部门控制的静态页面,而http://twitter.com/转到您的提要。
我看到了一些选项,可以使用一些帮助:
- 设备:基于 URL 的路由,如 NetScaler / F5。太贵了,在云部署中表现不佳(Heroku/Jitsu/AWS/etc)
- 代理:静态站点部署到不同的 URL(例如 web.mysite.com),动态站点知道特殊路径并检索和缓存数据。它有效,但复杂且混乱。
- CORS:所有静态站点均从静态站点 www.mysite.com 提供,但从备用 api.mydata.com 加载应用程序模板、JS、CSS 等,并使用 CORS 通过 REST 加载动态数据。
3 听起来不错,但担心 CORS 浏览器支持,并且仍然会在静态和动态站点上受到一些污染。
FWIW,在 nodejs 中实现动态,但可以很容易地应用于 RoR 甚至 JavaEE。