バンドルとミニファイを使用したい。MVCのバージョンによって、実装は少し異なります。最新バージョンでは、デフォルトで使用されます。
バンドルとミニファイは、すべてのスクリプト(およびスタイルシート)を1つのファイル(または使用方法によっては複数)に結合してミニファイし、一意のパラメーターを使用して提供します。その特定のバンドルでファイルが変更されると(したがって、ユーザーは新しいファイルをダウンロードする必要があります)、パラメーターは自動的に変更されます。
MVC3の場合、 MicrosoftWebOptimizationをインストールする必要があります。
次に、global.ascxで、次のようなことを行い、次の場所から呼び出しますApplication_Start
。
private static void SetupBundling()
{
var jsBundle = new Bundle("~/Scripts/js", typeof(JsMinify));
jsBundle.AddDirectory("~/Scripts/", "*.js", false);
jsBundle.AddDirectory("~/Scripts/anothr-good-folder/", "*.js", false);
BundleTable.Bundles.Add(jsBundle);
var randomBundle = new Bundle("~/Scripts/random", typeof(JsMinify));
randomBundle.AddFile("~/Scripts/random/main.js");
randomBundle.AddFile("~/Scripts/random/cool.js");
BundleTable.Bundles.Add(randomBundle);
var cssBundle = new Bundle("~/Content/css", typeof(CssMinify));
cssBundle.AddDirectory("~/Content/", "*.css", false);
BundleTable.Bundles.Add(cssBundle);
}
そのため、最初のバンドルはフォルダ内のすべての.js
ファイルをバンドルし~/Scripts
ます。ヘッドファイルでは、次のように参照できます。
<script src="@Microsoft.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")" type="text/javascript"></script>
そしてそれは次のようにレンダリングされます:
<script src="/Scripts/js?v=-2573834892993289" type="text/javascript"></script>
また、.js
ファイルの1つが変更されると(または.css
)、パラメーターも変更されます。
randomBundle
CSSバンドルの同様の実装であり、特定のページでのみ参照する場合も同様です。