Относительно комплектации и минимизации файлов 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?

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

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; или полностью удалив эту строку и просто запустив ее в режиме отладки.

Другие вопросы по тегам