3

これは一口です!基本的に、すべてのRails3アセットをS3Cloudに送信し、CloudFrontをCDNとして使用してすべてを配信しようとしています。本番モードでアセットサーバーからプルするようにRailsを構成する方法についてはすでに学びました。私が直面している問題は、rakeコマンドまたはrailsgemからすべてを自動的にパッケージ化してクラウドに送信するための良い方法を見つけることです。私が抱えているもう1つの問題は、MessCSSをMoregemで使用すると、これが台無しになるかどうかわからないことです。Moreは、別のディレクトリからCSSファイルを生成し、それをpublic/stylesheetsに配置します。どんなアイデアや提案も大歓迎です!ありがとう :)

4

1 に答える 1

3

Heroku にプッシュしており、Rails 3.1 アセットを使用している場合は、すべて準備完了です。

Amazon の CloudFront 構成でディストリビューションを作成し、オリジンをアプリケーション URL に設定します。

次に、 production.rb ファイルに次を追加します。

config.action_controller.asset_host = "xxxxxxxxx.cloudfront.net"

ホストは、CloudFront ディストリビューションのホストです。

次に、デプロイするときに、Cedar スタック上にあり、アセットがコンパイルされていることを確認してください。これにより、一意の MD5 がファイル名に追加されます。CDN に対してリクエストが行われると ( production.rb ファイルの設定によって自動的に処理されます)、CDN はファイルのバージョンを提供するか、最初にオリジンからプルします。つまり、ファイルを CDN にプッシュする必要はなく、ファイルは自動的に取り込まれます。

何らかの理由で一意の名前を持たないファイルがある場合は、CloudFront でキャッシュを無効にする方法を検討する必要がありますが、それ以外は非常に簡単です。

于 2012-01-05T22:50:06.510 に答える