ヒント#1:静的コンテンツを取得する
ヒント#2:クリーンアップ
ヒント#3:ページ全体をキャッシュする
ヒント#1:静的コンテンツを取得する
1つのWebアプリケーションが複数のjavascriptとcssスタイルを一度に読み込むことがよくあります。 これにより、Webブラウザーが新しいファイルのたびに新しい接続を開くため、ページのロードが大幅に遅くなります。
解決策は、すべてを1つのファイルに結合することにより、ページの外部リソースの数を減らすことです。 AssetPackagerプラグインはこれに役立ちます。
私たちは置きます:
script/plugin install git://github.com/sbecker/asset_packager.git
config / asset_packages.ymlの例:
---
javascripts:
- base:
- prototype
- effects
- controls
- dragdrop
- application
- secondary:
- foo
- bar
stylesheets:
- base:
- screen
- header
- secondary:
- foo
- bar
そして、rakeタスクを実行します:
rake asset:packager:build_all
次に書くJavaScriptについて
<%= javascript_include_merged :base %>
<%= javascript_include_merged 'prototype', 'effects', 'controls', 'dragdrop', 'application' %>
スタイルの場合:
<%= stylesheet_link_merged :base %>
<%= stylesheet_link_merged 'screen', 'header' %>
結果として、開発モード用の古いコードを取得します。例えば:
<link href="/stylesheets/screen.css" type="text/css" />
<link href="/stylesheets/header.css" type="text/css" />
そして、実動モードでは次のようになります。
<link href="/stylesheets/base_packaged.css?123456789" type="text/css" />
負荷をさらに小さくするために、すべての静的ファイルを別のホストに転送します(理由はこちらです )railsでは、次の行をconfig / environment / production.rbに追加するだけです。
config.action_controller.asset_host = "http://assets.example.ru"
すべてのimage_tag、javascript_include_tagなど このホストを指します。
UPD :プラグインの代わりに、<%= javascript_include_tag:all ,: cache => true%>、more details hereを使用できます 。 ありがとう