あなたがする必要があるのは Static>App_Start>BundleConfig.cs に行くことです:
次に、持っているビューごとにバンドルを作成します。
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/GlobalScripts")
.Include("~/Static/Scripts/jquery-1.10.2.js"
, "~/Static/Scripts/json2.js"
, "~/Static/Scripts/jquery-ui-1.10.4.js"
//, "~/Static/Scripts/jquery.layout-1.3.0.js"
//, "~/Static/Scripts/jquery.layout.state.js"
, "~/Static/Scripts/helper.mainlayout.js"));
}
}
.Include()
ビュー内のすべての JavaScript に対してスクリプト パスを追加し続けbundles.add(new ScriptBundle(<bundle path>))
、すべてのビューに対して実行を続けます。
CSS バンドルで同様の手順を実行しますが、使用する代わりに使用しScripBundle
ますStyleBundle
コードの繰り返しを減らすには、互いに依存しているすべての JavaScript の文字列のリストを作成し、それらを結合してみてください。
List<string> jqGridScripts = new List<string>
{"~/Static/Scripts/jquery.jqGrid.src.js"
, "~/Static/Scripts/i18n/grid.locale-en.js"
, "~/Static/Scripts/helper.jqgrid.js"};
List<string> jqStopwatch = new List<string>
{ "~/Static/Scripts/jquery.stopwatch.js" };
bundles.Add(new ScriptBundle("~/bundles/viewName")
.Include(jqGridScripts
.Union(jqStopwatch).ToArray()));
配列に表示される順序は、HTML に表示される順序、またはバンドルされて縮小される順序と同じであることを覚えておいてください。
ビュー内のコード:
@section scripts{
@Scripts.Render("~/bundles/viewName");
}
HTML の結果コード
<script src="/WDCSS/bundles/viewName?v=T3IlBuvfGTiz62pwDuiPogFX1jQoxVC2tmp3K6wffBQ1"></script>
私の意見
これをやるべきかどうかはよくわかりません。私にとっては、キャッシュされるように、すべてのページで使用されるスクリプトを別のバンドルに分けています。次に、ビューで使用されるスクリプト用に別のバンドルを作成します。私が言おうとしているのは、バンドル、ミニフィケーション、キャッシングの間でバランスをとるべきだということです。