メインコンテンツにスキップ
  • Middleman ホームページ
  • サポート
  • コミュニティ
  • ドキュメント

基礎

  • インストール
  • v4 へのアップグレード
  • 新しいサイトの作成
  • ディレクトリ構造
  • 開発サイクル
  • ビルド & デプロイ
  • Frontmatter
  • テンプレート言語
  • ヘルパーメソッド
  • レイアウト
  • パーシャル
  • リダイレクト
  • ブログ機能

高度な機能

  • 設定
  • プロジェクトテンプレート
  • 動的ページ
  • データファイル
  • 多言語化 (i18n)
  • アセットパイプライン
  • 外部パイプライン
  • Rack ミドルウェア
  • サイトマップ
  • きれいな URL (ディレクトリインデックス)
  • キャッシュ機能の改善
  • ファイルサイズ最適化
  • カスタム拡張
  • テンプレートエンジンオプション

キャッシュ機能の改善

Web サイトのレンダリングを可能な限り高速化するには, JavaScript, CSS や画像のようなアセットファイルを Web ブラウザに 長時間キャッシュするように 命令する適切なヘッダとともに配信すべきです。 ヘッダによってユーザがサイトを再度訪問する時 (またサイトのその他のページを訪問する時) これらのアセットファイルを再ダウンロードしません。長期間の Expires や Cache-Control ヘッダの設定は, アセットファイルを変更した時にユーザが まだキャッシュされたバージョンを使っていると問題を引き起こ可能性があります。 Middleman はこの問題解決のために 2 つの方法を提供します。

一意の名前のアセットファイル

ユーザによる古いファイル使用防止に最も効果的な方法は, アセットファイルの内容を変更する度にファイル名を変更するものです。 手作業で行うには大変なので, Middleman にはこの処理に対応する :asset_hash 拡張が付属しています。 まず config.rb で拡張機能を有効化します:

activate :asset_hash

次に, 通常のファイル名でアセットファイルを参照します。 image_tag のようなヘルパを使うことができます。 サイトのビルド時にそれぞれのアセットファイルは, そのファイルの内容で 通常のファイル名に余分なテキストを少し追加した名前で生成されます。 すべてのアセットファイル (HTML, CSS, JavaScriptなど) は 通常のファイル名の代わりに一意に生成されたファイル名を参照するように変更 されます。Expires を "無期限" 指定で配信するようになりますが, アセットファイルを 変更した場合には別のファイル名で表示されることを確認してください。

ただし, この拡張機能は名前を変えたアセットファイルを参照するようにファイルを 書き換えて動作するので, 参照を失敗したり, コードの中で実行したくない処理を するかも知れません。この場合, 古い方法ですが, キャッシュバスターの使用を 選択する必要があるかもしれません。

一部ファイルを名前変更から除外したい場合, :asset_hash を有効化する時に :ignore オプションを渡し, 無視したいファイルを指す 1 つ以上のパターンマッチ, 正規表現や Proc を与えてください。同様にファイル拡張子を変更するために :exts オプションを渡すことができます。

サーバの設定

長期間の Expires と Cache-Control ヘッダを使うサーバ設定は使うサーバに よって異なります。あなたが使うサーバの設定方法は Google の page speed docs を参照し, 設定が正しく行われているか確認するために Google PageSpeed Insights や YSlow を 使ってください。

© 2011–2022 Thomas Reynolds

コントリビュータ の助けを借りて コアチーム によって メンテナンスされています。

  • Twitter
  • GitHub