MVC 4を使用する場合は、バンドルを使用することをお勧めします。
バンドルを使用すると、デバッグ中か本番環境かによって、ブラウザーでレンダリングされる一連のスクリプトを定義できます。
デバッグ中であるかどうかを検出するには、web.configファイルで次の設定を変更する必要があります
<compilation debug="true">
また、バンドルは、レンダリングする必要のあるスクリプトファイルを検出するために規則を使用します
簡単な例
たとえば、JQueryの場合
JQueryスクリプトファイルは次のようになります。
jquery-1.8.2.js
jquery-1.8.2.min.js
バンドルを宣言するときは、次のようにします。
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
ファイル名のバージョンや.min部分を指定していないことに注意してください。これは、これらがバンドルエンジンが正しいファイルを選択するために考慮に入れる特別なトークンであるためです。
指定されたパスを使用してバンドルを参照する場合は常に、バンドルエンジンがそれらを処理し、正しいスクリプトファイルを選択します。次に例を示します。
この例では、バンドルの名前は次のとおり~/bundles/jquery
です。ページでは次のように参照します。
@Scripts.Render("~/bundles/jquery")
バンドルにさらに多くのスクリプトがある場合、同じルールがそれらすべてに適用されます。
複雑な例
このバンドル登録を検討してください
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
デバッグする場合、これはレンダリングされたHTMLになります
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
デバッグしていない場合、これはレンダリングされます:
<script src="/bundles/jqueryval?v=6Fqs6ZHMM_nFyDgv5mxz89PzsVLAnRNKOhqrK-mI5yU1"></script>
そして、そのリンクにはマージされたすべてのスクリプトファイルが含まれるため、すべてのスクリプトが1回のヒットでブラウザによってダウンロードされるため、ページの読み込みが速くなります。
詳細については、ASP.NET4.5の新機能を参照してください。