こんにちは、私は AssetHat の作成者です。縮小と連結は、実装が最も簡単なパフォーマンス向上の 1 つです。これらの機能は Jammit、AssetHat、rack-pagespeed に共通です。Rails は長い間連結をサポートしてきました (ただし、展開時ではなく実行時に行われます)。Rails 3.1 が展開時に縮小と連結の両方をサポートしていることは驚くことではありません。
残りの機能は、これらのアセットマネージャーのそれぞれを興味深いものにしています. たとえば、Jammit は、画像やフォント ファイルをスタイルシートに直接埋め込みたい場合に便利です。すべての最適化を完全に別のレイヤーに保持したい場合は、rack-pagespeed も便利です。
CSS へのアセットのインライン化は、スタイルシートが頻繁に変更されない静的ページに最適です。ただし、サイトが活発に開発されており、スタイルシートが少しでも変更された場合、ユーザーのブラウザーは、おそらく変更されていないインライン画像やフォントを含め、すべてを再ダウンロードする必要があります。それはプロジェクトの性質によって異なります。
アセットが大きすぎてインライン化または連結できない場合、AssetHat は CDN と並列読み込みの最適化に役立ちます。
- Google の CDN、cdnjs ( Amazon のサーバーを使用)、または選択した別の CDN のいずれであっても、CDN を大いに活用します。たとえば、
<%= include_js :jquery %>
レイアウト (および構成ファイル内のバージョン番号) に追加するだけで、Google の CDN から jQuery をロードできます。開発モードで jQuery のローカル コピーを持っている場合は、代わりにそれが読み込まれます — 簡単なオフライン開発。
- AssetHat は、代わりにCDN を使用するようにスタイルシートの画像 URL を書き換えることができます。これは設定から読み取ら
config.action_controller.asset_host
れ、デプロイ時に行われます。元の CSS はそのまま残ります。
- ロードする JS ファイルが複数ある場合は、それらを連結するよりも並列でロードする方が高速な場合があります (つまり、強制的に順次ロードします)。LABjsモードは簡単にオンにできます:
<%= include_js 'big-file-1', ..., 'big-file-n', :loader => :lab_js %>
. ローカルに LABjs のコピーがない場合、または運用環境にある場合、LABjs は cdnjs を介して Amazon のサーバーからロードされます。
Google や Amazon などの CDN を使用することで、ユーザーはより多くのアセットを並行してロードでき (ホスト名が多いため)、速度が向上し、場合によってはアセットをダウンロードする必要さえありません (Google の jQuery のコピーを既にロードしている場合など)。他の人のウェブサイト経由)。
Heroku で AssetHat を使用しました。デプロイ スクリプトを単純に実行するように設定しrake asset_hat:minify
(CSS/JS を縮小して連結するため)、それらの変更をリポジトリにコミットしてから、実際のデプロイを行いました。
これらをまだ見ていない場合は、次のことに興味があるかもしれません。
セットアップのサポートが必要な場合、またはその他の質問がある場合は、GitHub ( rondevera ) または Twitter ( @ronalddevera ) でお気軽にメッセージを送ってください。