0

サブディレクトリ内の縮小されたファイルを検索するバンドルを作成するために、.NET 縮小 / バンドル メカニズムを使用することは可能ですか?

非圧縮:

/css/jquery-ui.css
/css/fullcalendar.css
/css/bootstrap.css

縮小:

/css/minified/jquery-ui.min.css
/css/minified/fullcalendar.min.css
/css/minified/bootstrap.css

約 12 個の個別のスタイルシートと 20 個以上のスクリプトがあり、圧縮されたバージョンは 2 倍になっています。少し整理するために、それらを分けておきたいと思います。これは可能ですか?

4

1 に答える 1

2

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とメソッドの検索パターンでは、最後のパス セグメントのプレフィックスまたはサフィックスとしてIncludeDirectory1 つのワイルドカード文字を使用できます。*検索文字列は大文字と小文字を区別しません。メソッドには、IncludeDirectory サブディレクトリを検索するオプションがあります。

于 2013-10-13T22:37:03.590 に答える