Как минимизировать JavaScript внутри страницы просмотра script с минимальными усилиями?
У меня есть сценарии, специфичные для страницы, которые хотели бы использовать определенные страницы просмотра. Но компоновка и минимизация ASP.NET MVC4 работает только с файлами script, а не script на странице просмотра.
UPDATE
Я взял совет Sohnee, чтобы извлечь скрипты в файлы. Но мне нужно использовать их на определенных страницах, поэтому в итоге я делаю следующее:
на странице макета, я создал необязательный раздел для конкретного блока javascript:
@RenderSection("js", required: false)
</body>
то на странице просмотра, скажем, Index.cshtml
, я представляю раздел script следующим образом:
@section js{
@Scripts.Render("~/bundles/js/" + Path.GetFileNameWithoutExtension(this.VirtualPath))
}
как вы можете видеть, предполагается, что имя файла javascript (index.js
) совпадает с именем страницы просмотра (Index.cshtml
). то в конфигурации пучка i:
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>
и если вы находитесь на странице proejcts
, выход html будет выглядеть следующим образом:
<script src="/bundles/js/Products?v=ydlmxiUb9gTRm508o0SaIcc8LJwGpVk-V9iUQwxZGCg1"></script>
</body>