7

通常のVPSサイトでは、Minifyを使用して複数のCSS/JSファイルを圧縮して組み合わせるため、サイトでは1つまたは2つのHTTPリクエストしか使用できません。私が現在取り組んでいるサイトには、Amazon S3でホストされ、Amazon CloudFrontを通じて提供されているCSS/JSファイルがあります。明らかにMinifyはPHP5アプリケーションであり、AWS上で実行することはできません。JS/CSSをAmazon S3に結合するにはどうすればいいですか?

アップロード前にスクリプトを簡単に圧縮できますが、AWS S3でスクリプトを組み合わせてHTTPリクエストを減らすにはどうすればよいですか?

http://code.google.com/p/minify/

答えて

6

縮小化は、その場でJS/CSSを結合しminifies。

S3とCloudFrontは静的ファイルを提供します。アップロードする前に、それらを結合してサイズを小さくする必要があります。これは簡単です。ファイルをまとめて連結し、YUI CompressorまたはGoogle Closure Compiler(2つのフリー・クロスプラットフォーム・コマンドライン・ミニリファイア)で縮小します。

これは、スクリプトを持っているか、これを行う手順を構築するために、通常は便利ですが、何かのように:Windowsでは

#!/bin/bash 
cat a.js b.js c.js | java -jar yuicompressor-1.4.2.jar --type js -o output.min.js 

、別の優れたオプションがMicrosoft's Ajax Minifierです。

2

CloudFrontはコールドキャッシュヒットを受信すると、そのディストリビューションの設定されたオリジンサーバーからコンテンツを要求します。ほとんどの場合、S3バケットが原点として設定されます。だから、最も簡単な方法は、あなたのJSとCSSを結合して小さくすることです。これは、ビルド/デプロイメントプロセスの一環としてS3に保存することです。

オンザフライで実際に縮小したい場合は、「Custom Origin」を使用するようCloudFrontを設定できます。この配布構成では、Minifyを実行しているサーバーからコールド・キャッシュ・ヒットが要求されます。

詳細については、CloudFrontのドキュメントcreating distributionsを参照してください。

+0

+1、カスタム起点についてはわかりませんでした – orip

1

S3/CloudFrontから静的コンテンツを配信する予定の場合は、事前にコンテンツを圧縮することをおすすめします。個人的には、Juicerを使用します。これを済ませたら、生産ファイルgzip -9を作成し、Content-Encoding: gzipヘッダーを付けてS3にアップロードできます。

オンザフライで圧縮する際の問題は、サイトでのパフォーマンスの低下です。 CloudFrontのカスタム起源サポートはこれを少し緩和しますが、あなたのためにこの作業を行うCapistranoのようなツールを使用して、配備を自動化するのは本当に簡単です。これは私が取るアプローチです。

1

新規 - Gzip圧縮サポート、Amazon CloudFront、Check here

gzip圧縮に

を有効にするあなたは分でこの機能を有効にすることができます!動作オプションでCloudFront Consoleを開いてディストリビューションを探し、オブジェクトを自動的に「はい」に設定する: enter image description here

関連する問題