Asp.Net MVC でバンドルと縮小を行う方法は、実行時の動的処理です。バンドルを作成すると、任意の Asp.Net ページに挿入できます。デバッグ モードの場合、バンドラーは、デバッグを容易にするために、バンドル内の各アイテムを完全な形式で送信します。リリース モードの場合、バンドラーはバンドル内の個々のファイルの内容をメモリ内の単一のファイル ストリームに自動的に解析し、それを縮小します。プロジェクトに css/javascript ファイルのフル バージョンと縮小バージョンの両方を明示的に含める必要はありません。ただし、ASP.Net ドキュメントによると:
バンドル フレームワークは、次のようないくつかの一般的な規則に従います。
- 「FileX.min.js」と「FileX.js」が存在する場合、リリースする「.min」ファイルを選択します。
- デバッグ用に「.min」以外のバージョンを選択する。
- IntelliSense でのみ使用される「-vsdoc」ファイル (jquery-1.7.1-vsdoc.js など) を無視します。
基本的に、完全版と縮小版の両方がある場合、フレームワークはファイル自体の縮小よりも縮小前のバージョンの使用を優先します。
リリース モードでページを読み込むと、バンドルと縮小の効果は、バンドル全体の単一の css または js ファイル ストリームとして表示され、サーバーへの単一の呼び出しによって表されますhttp://localhost/MvcBM_time/bundles/AllMyScripts?v=r0sLDicvP58AIXN_mc3QdyVvVj5euZNzdsa2N1PKvb81
。
事実上、バンドルの名前に一致する一意のルートが作成されます (AllMyScripts
この例では)。クエリ文字列v
には、キャッシュに使用される一意の識別子である値トークンがあります。バンドルが変更されない限り、ASP.NET アプリケーションはAllMyScripts
このトークンを使用してバンドルを要求します。バンドル内のいずれかのファイルが変更された場合、ASP.NET 最適化フレームワークは新しいトークンを生成し、バンドルに対するブラウザーの要求が最新のバンドルを取得することを保証します。
複数のディレクトリからファイルを含める場合、ワイルドカード パターン マッチングを使用するのが最も簡単な方法です。メソッドで指定された仮想パスInclude
とメソッドの検索パターンでは、最後のパス セグメントのプレフィックスまたはサフィックスとしてIncludeDirectory
1 つのワイルドカード文字を使用できます。*
検索文字列は大文字と小文字を区別しません。メソッドには、IncludeDirectory
サブディレクトリを検索するオプションがあります。