Устанавливает ли ASP.net-пакет автоматически файлы? - программирование

Устанавливает ли ASP.net-пакет автоматически файлы?

Я использую ASP.net MVC 4. Как и вопрос, если я помещу кучу JS файлов (или CSS, если на то пошло) в пакет, будет ли он автоматически? Например, должен ли мой пакет читать:

        bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include(
            "~/Scripts/jquery-masked.js"
            "~/Scripts/jquery.idletimer.js"
            ));

Или сначала следует включить мини файлы:

        bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include(
            "~/Scripts/jquery-masked.min.js"
            "~/Scripts/jquery.idletimer.min.js"
            ));

??

Изменить:. Теперь мне интересно, добавляет ли какая-либо оптимизация. Будет ли это повышать производительность, включая файлы .min в комплекте вместо базовых файлов? (Может быть, функция minifier занимает некоторое время?)

4b9b3361

Ответ 1

Пакет Asp.Net связывает все сценарии одного и того же пакета в один файл, перечисленные в том порядке, в котором они определены в комплекте. Затем этот один файл затем минимизируется и доставляется клиенту.

Если вы включите как стандартную, так и мини-версию script в каталог script, поставщик будет автоматически развертывать полный script во время сеансов отладки и миниатюрной версии во время производства. Вы не должны ссылаться на мини-версии ваших сценариев в конфигурации пакета, если только вы не хотите, чтобы мини-версия была развернута на ваши сеансы отладки.

Ответ 2

Вам не нужно включать мини файлы, которые автоматически выполняются с помощью ядра пакета. На самом деле, я помню, в том числе мини файлы вызвали проблемы (возможно, это исправлено на последней версии mvc)

Вы можете подумать, что это не работает, поскольку оптимизация (объединение и минимизация) выполняется только при debug=false на web.config.

<system.web>
     <compilation debug="false" />
</system.web>

Существует способ принудительной оптимизации даже при debug = true с помощью BundleTable.EnableOptimizations. Здесь у вас есть пример

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                 "~/Scripts/jquery-{version}.js"));

    BundleTable.EnableOptimizations = true;
}

Ответ 3

Это два разных термина, называемых связыванием и минимизацией.
Minics: вы минимизировали версии JS файлов, где вы сжимаете контент, переименовывая переменные.
Связывание: это совсем другая вещь. Чтобы уменьшить кругооборот в сети, лучше всего объединить все в один файл и загрузить его на клиент в одном запросе.

Итак, вы можете связать сокращенную версию JS, чтобы получить эту выгоду.