Что касается пакета файлов js и css и минимизации

Я никогда не использую эту функцию. Поэтому я читаю несколько статей об этом. После прочтения статьи о пакете и минимизации у меня возникло некоторое замешательство. поэтому я хотел бы знать и прояснить эту путаницу, спрашивающую здесь.

1) я мог понять, что такое пакет и минимизация, но хотел бы знать, что минифракция будет выполняться каждый раз на лету или мне нужно минимизировать любой файл js перед сохранением в папку js?

2) что делает bundle.add()? он сначала минимизирует, а затем включает файл в пакет?

3) если файл уже минимизирован и имя похоже на jquery.min.js, что произойдет... возникнет какая-либо ошибка?

4) если минифракция будет выполняться на лету, то происходит ли это каждый раз, когда разные клиенты запрашивают какую-либо страницу, или это происходит только один раз?

5) после минификации минифицированная версия будет кешироваться сервером, чтобы предотвратить минифракцию все время?

6)

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

    // Code removed for clarity.
    BundleTable.EnableOptimizations = true;
}

please have a look at this code
"~/Scripts/jquery-{version}.js"));
is it wild card use {}

7) я узнал, что актуальная версия файла js будет обслуживаться во время отладки, а не уменьшенной версии. это правда ? как я могу увидеть это сам, когда буду тестировать свою страницу из IDE?

ищу обсуждения. Спасибо


person Thomas    schedule 01.07.2013    source источник


Ответы (1)


  1. Нет необходимости самостоятельно минифицировать файлы.

  2. bundles.Add в вашем примере сделает одну из многих вещей: в режиме отладки он добавит неминифицированную версию jquery (в этом случае сценарии отображаются по отдельности, а не в комплекте). Это сделано в целях отладки.

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

  3. Ошибки нет, но в режиме отладки файлы .min не используются.

  4. Однократный процесс.

  5. То же, что и 4. Новый пакет будет создан при изменении файла со строкой запроса «v», чтобы заставить клиента загрузить новый пакет. «Строка запроса v имеет маркер значения, который является уникальным идентификатором, используемым для кэширования. Пока пакет не изменяется, приложение ASP.NET будет запрашивать пакет с использованием этого маркера. Если какой-либо файл в пакете изменится [это ] сгенерирует новый токен, гарантируя, что браузер получит последнюю версию пакета». источник

  6. Да, это подстановочный знак версии для автоматического создания пакета jQuery с соответствующей версией jQuery в вашей папке Scripts. Позволяет обновлять версии скриптов без необходимости изменения кода комплектации.

  7. Режим отладки будет обслуживать отдельные неминифицированные файлы (а не файлы .min). Вы можете проверить, установив BundleTable.EnableOptimizations = false; или вообще удалив эту строку и просто запустив в режиме отладки.

person MikeSmithDev    schedule 01.07.2013
comment
Спасибо за ответ. что BundleTable.EnableOptimizations = false; оно делает? - person Thomas; 03.07.2013
comment
Он отключает связывание и минификацию. Вы можете сказать, потому что каждый файл будет обслуживаться индивидуально, а не в одном пакете. Таким образом, он будет отображаться как /Scripts/jquery-1.9.1.js вместо /bundles/jquery?v=sometoken, если вы посмотрите на код... и он не будет минимизирован и не будет использовать файлы .min. - person MikeSmithDev; 03.07.2013