1

CloudantがホストするCouchDBを使用するSproutcoreアプリケーションがあります。devenvでは、Sproutcoreプロキシを使用してリクエストをCloudantに転送しています(単一生成元ポリシーのため、JavaScriptから任意のホストを呼び出すことはできません)。

アプリをホストする上でのあなたの提案は何でしょうか。CouchAppsの読み込みスクリプトがあいまいなエラーで失敗します(Sproutcoreアプリは約40 MBのJavaScriptとリソースであることに注意してください)。

4

2 に答える 2

2

couchdbと直接通信するアプリをホストすることについては、同じオリジンポリシーによって制限されているため、SproutCoreアプリを提供するサーバーは、couchDBデータベースにアクセスするときと同じドメインに存在する必要があります。ホストが静的ファイルサーバーを提供している場合は、それを使用できますが、最善の策は、おそらくそれをソファアプリとして保存することです。

SCをCouchアプリとしてデプロイする際の鍵は、正しい場所を指すようにsc-buildが生成するURLを設定する必要があることです。これは、ビルドファイルを次のように設定することで実行できます。

:url_prefix => '<database>/_design/<designDocument>/'

このようにして、リンクは正しい場所を指します。

必要に応じて、CouchDBのURL書き換えを設定して、より単純なURLを取得することもできます。これに関する詳細については、こちらをご覧ください。

https://groups.google.com/d/topic/sproutcore/-D-5T5yPg3A/discussion

PS:40mbは大きすぎるようです!画像はたくさんありますか?そんなにJS/CSSを持っていたら気になります。

于 2011-03-07T12:57:57.390 に答える
1

Cloudantは、そのクラスターを(主に)us-east-1bまたはus-west-1bアベイラビリティーゾーンのEC2でホストします。CouchAppとしてデプロイできない場合は、DBクラスターの隣にアプリケーション層を配置するようにしてください。これにより、Webサーバーとデータベース間の遅延が最小限に抑えられます。

これは、EC2インスタンスを取得してその上でウェブサーバーを実行することで自分で行うことができます。または、AWSでホストするサードパーティのホスト(Herokuなど)を使用することもできます。

どちらの場合も、Webサーバーからデータベースへの小さなプロキシを実行する必要があります。そのため、現時点ではS3でのホスティングはオプションではありません。

アプリをウェブサーバーにデプロイしたら、ウェブサーバーとデータベースが同じAWSアベイラビリティーゾーンにあることを確認することを忘れないでください。そうでない場合は、Cloudantにアカウントの移動を依頼してください。

于 2011-03-07T18:13:13.220 に答える