<目次>
(1) BundleConfig.csの設定および記述方法について
(1-1) BundleConfig.csの設定および記述方法について
(1-2) BundleConfig.csの書き方
(1-3) (参考)BundleConfig.csの作り方
(1) BundleConfig.csの設定および記述方法について
(1-1) BundleConfig.csとは?
「BundleConfig」はASP.NET MVCにおいて、クライアントが「JavaScript」や「css(スタイルシート)」などをサーバからダウンロードする際のネットワークトラフィックを最小限に抑えるために、複数のJavaScriptやcssをダウンロードして束ねる(Bundle)事により、HTTPリクエストの数を減少させて、ページの表示速度を向上させるための機能です。この設定を記述する定義ファイル(C#プログラム)が「BundleConfig.cs」です。
(図111)
(図112)バンドルなし
(図113)バンドルあり
(1-2) BundleConfig.csの書き方
以下のサンプルを基にBundleConfigの書き方をご紹介いたします。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Optimization; namespace BookLibrarySystem { public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { //# css(カスタムcss、bootstrap)を「~/Content/css」に紐づけ bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/Site.css", "~/Content/bootstrap-pulse.css")); //# modernizr(ユーザのブラウザ機能検知)を「~/Scripts/modernizr-*」に紐づけ bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( "~/Scripts/modernizr-*")); //# jQueryを「~/bundles/jquery」に紐づけ bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); //# bootstrap.jsを「~/bundles/bootstrap」に紐づけ bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include( "~/Scripts/bootstrap.js")); } } }

Add(【Bundle型のオブジェクト】)
//# JavaScriptの場合 ScriptBundle(【String型の仮想パス】) //# cssの場合 StyleBundle(【String型の仮想パス】)
更に、上記のScriptBundle、StyleBundleクラスの「Include」メソッドを使って、実際にバンドルする対象のファイルを列挙していきます。
(構文)
Include(【String[]型の配列】)
(例)
public static void RegisterBundles(BundleCollection bundles) { Bundle test = new StyleBundle("~/Content/css").Include("~/Content/bootstrap.css","~/Content/bootstrap_pulse.css"); bundles.Add(test); //~中略~ }
//# ワイルドカード例① jquery-{version}.js //# ヒットする結果例① jquery-3.4.1.js jquery-3.4.2.min.js //# 以下も同様の意味になります jquery-*.js
(1-3) (参考)BundleConfig.csの作り方

・①App_Startフォルダを「右クリック」⇒「追加」⇒「クラス」と選択

・②クラス名を「BundleConfig.cs」にして「追加」を押下

・③前提パッケージのインストール
●NuGetパッケージマネージャーを開く


●Microsoft.AspNet.Web.Optimizationのインストール



●コードの追記
(確認①)BundleConfig.csの追記orWeb.configの修正 |
(確認②)Global.asax.csへの登録 |
(確認③)web.configへの追記(名前空間) |
(確認③)各ビューやレイアウト(_Layout.cshtml等)でのインポート |