托管Cloudant CouchDB备份的Sproutcore应用程序的最佳位置?

托管Cloudant CouchDB备份的Sproutcore应用程序的最佳位置?,couchdb,hosting,sproutcore,paas,cloudant,Couchdb,Hosting,Sproutcore,Paas,Cloudant,我有一个Sproutcore应用程序,它使用Cloudant托管的CouchDB。在devenv中,我使用Sproutcore代理将请求转发到Cloudant(由于单源策略,我显然不能从JavaScript调用任意主机) 您对托管应用程序有何建议。CouchApps加载脚本失败,错误不明(请注意,Sproutcore应用程序大约有40 MB的JavaScript和资源)。托管一个直接与couchdb对话的应用程序的问题是,您受到同源策略的限制,因此为您的Sproutcore应用程序提供服务的服务

我有一个Sproutcore应用程序,它使用Cloudant托管的CouchDB。在devenv中,我使用Sproutcore代理将请求转发到Cloudant(由于单源策略,我显然不能从JavaScript调用任意主机)


您对托管应用程序有何建议。CouchApps加载脚本失败,错误不明(请注意,Sproutcore应用程序大约有40 MB的JavaScript和资源)。

托管一个直接与couchdb对话的应用程序的问题是,您受到同源策略的限制,因此为您的Sproutcore应用程序提供服务的服务器,必须在访问couchDB数据库时位于同一域上。如果你的主机提供了一个静态文件服务器,你可以使用它,但你最好的选择可能只是将它保存为一个沙发应用程序

将SC部署为沙发应用程序的关键在于,您必须设置SC build生成的URL以指向正确的位置。这可以通过如下的buildfile设置完成:

:url_prefix => '<database>/_design/<designDocument>/'
:url\u prefix=>'/\u design/'
这样链接就指向了正确的位置

如果愿意,还可以设置CouchDB url重写以获得更简单的url。请查看此处,了解有关此问题的更多讨论:


PS:40mb看起来太大了!你有很多图片吗?如果您有那么多JS/CSS,我会担心。

Cloudant(主要)在美国东部1b或美国西部1b可用性区域的EC2上托管其集群。如果您不能作为CouchApp部署,您应该尝试将您的应用程序层与DB集群相邻。这将最小化web服务器和数据库之间的延迟

您可以通过获取EC2实例并在其上运行web服务器来实现这一点,也可以使用在AWS上托管的第三方主机(例如)

在这两种情况下,您都需要运行一个从web服务器到数据库的小型代理。这就是为什么目前不选择在S3上托管


将应用程序部署到web服务器后,不要忘记检查web服务器和数据库是否位于同一AWS可用性区域。如果没有,只需移动您的帐户。

Thnx。我试图找到一个比创建自己的AWS映像更简单的选项。这个选项似乎不可用。