8

通常のVPSサイトでは、ミニファイを使用して複数のCSS / JSファイルを圧縮および結合するため、サイトは1つまたは2つのHTTPリクエストのみを使用します。私が現在取り組んでいるサイトでは、CSS /JSファイルがAmazonS3でホストされ、AmazonCloudFrontを介して提供されています。明らかに、ミニファイはPHP5アプリであり、AWSでは実行できません。

アップロードする前にスクリプトを簡単に圧縮できますが、AWS S3でスクリプトを組み合わせてHTTPリクエストを減らすための最良の方法は何ですか?

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

4

4 に答える 4

6

Miniify は、オンザフライで JS/CS を組み合わせて縮小します。

S3 と CloudFront は静的ファイルを提供します。アップロードする前に、それらを自分で結合して縮小する必要があります。ファイルを連結し、YUI CompressorまたはGoogle Closure Compiler (2 つの無料のクロスプラットフォーム コマンドライン ミニファイヤ) で縮小するだけです。

通常は、次のようなスクリプトまたはビルド ステップを使用すると便利です。

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

Windows では、もう 1 つの優れたオプションがMicrosoft の Ajax Minifierです。

于 2011-01-26T21:29:51.550 に答える
2

CloudFront がコールド キャッシュ ヒットを受け取ると、ディストリビューションの設定済みオリジン サーバーからコンテンツをリクエストします。ほとんどの場合、S3 バケットがオリジンとして設定されます。したがって、JS と CSS を組み合わせて縮小する最も簡単な方法は、ビルド/デプロイ プロセスの一部として S3 に保存することです。

オンザフライで縮小したい場合は、「カスタムオリジン」を使用するように CloudFront を設定できます。このディストリビューション構成では、Minify を実行しているサーバーからコールド キャッシュ ヒットが要求されます。

詳細については、ディストリビューションの作成に関する CloudFront ドキュメントを参照してください。

于 2011-01-26T21:54:44.330 に答える
1

S3/CloudFront から静的コンテンツを提供する予定がある場合は、事前にコンテンツを圧縮することをお勧めします。個人的にはジューサーを使っています。それが完了したらgzip -9、本番ファイルを作成して、Content-Encoding: gzipヘッダーを付けて S3 にアップロードできます。

その場で圧縮することの問題は、サイトのパフォーマンスに影響を与えることです。CloudFront のカスタム オリジン サポートはこれを少し軽減しますが、これを行うCapistranoのようなツールを使用してデプロイを自動化するのは非常に簡単です。これは、私自身が取っているアプローチです。

于 2011-02-02T05:57:25.427 に答える
1

New – Amazon CloudFront の Gzip 圧縮のサポート。こちらを確認してください

Gzip 圧縮の有効化

この機能はすぐに有効にできます。CloudFront コンソールを開き、ディストリビューションを見つけ、[動作] オプションで [オブジェクトを自動的に圧縮] を [はい] に設定するだけです。 ここに画像の説明を入力

于 2016-02-29T11:28:58.287 に答える