最小限の労力でビューページのスクリプトブロック内のJavaScriptを縮小する方法は?
特定のビューページに配置したいページ固有のスクリプトがいくつかあります。ただし、ASP.NET MVC4のバンドルとミニファイは、スクリプトファイルでのみ機能し、ビューページ内のスクリプトコードでは機能しません。
アップデート
私はSohneeのアドバイスを受けて、スクリプトをファイルに抽出しました。しかし、特定のページでそれらを使用する必要があるので、最終的には次のようになります。
レイアウトページで、ページ固有のjavascriptブロックのオプションセクションを作成しました。
@RenderSection("js", required: false)
</body>
次に、ビューページで、たとえばIndex.cshtml
、スクリプトセクションを次のようにレンダリングします。
@section js{
@Scripts.Render("~/bundles/js/" + Path.GetFileNameWithoutExtension(this.VirtualPath))
}
ご覧のとおり、javascriptファイル名(index.js
)はビューページ名()と同じであると想定していますindex.cshtml
。次に、バンドル構成で、次のようになります。
var jsFiles = Directory.GetFiles(HttpContext.Current.Server.MapPath("Scripts/Pages"), "*.js");
foreach (var jsFile in jsFiles)
{
var bundleName = Path.GetFileNameWithoutExtension(jsFile);
bundles.Add(new ScriptBundle("~/bundles/js/" + bundleName).Include(
"~/Scripts/pages/" + Path.GetFileName(jsFile)));
}
次に、index
ページを表示している場合、HTML出力は次のようになります。
<script src="/bundles/js/Index?v=ydlmxiUb9gTRm508o0SaIcc8LJwGpVk-V9iUQwxZGCg1"></script>
</body>
ページを表示している場合products
、HTML出力は次のようになります。
<script src="/bundles/js/Products?v=ydlmxiUb9gTRm508o0SaIcc8LJwGpVk-V9iUQwxZGCg1"></script>
</body>