バンドルとミニファイを使用したい。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)、パラメーターも変更されます。
randomBundleCSSバンドルの同様の実装であり、特定のページでのみ参照する場合も同様です。