Относительно комплектации и минимизации файлов 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 ответ
Нет необходимости минимизировать файлы самостоятельно.
bundles.Add
в вашем примере будет выполнено одно из многих действий: в режиме отладки будет добавлена неминифицированная версия jquery (в этом случае сценарии отображаются отдельно, а не в комплекте). Это сделано для целей отладки.В режиме без отладки он будет использовать минимизированную версию, если она существует. Если он не существует, он минимизирует его для вас и поместит в пакет... в алфавитном порядке по имени файла или в указанном вами порядке. Он также поместит известные библиотеки в верхнюю часть пакета (например, jQuery) по мере необходимости.
Нет ошибок, но в режиме отладки файлы.min не используются.
Единовременный процесс.
То же, что и 4. Новый пакет будет создан при изменении файла со строкой запроса "v", чтобы заставить клиента загрузить новый пакет. "Строка запроса v имеет маркер значения, который является уникальным идентификатором, используемым для кэширования. Пока пакет не изменяется, приложение ASP.NET будет запрашивать пакет, используя этот токен. Если какой-либо файл в пакете изменится [он ] сгенерирует новый токен, гарантируя, что браузер получит последний пакет. " источник
Да, это подстановочный знак версии для автоматического создания пакета jQuery с соответствующей версией jQuery в папке Scripts. Позволяет обновлять версии скриптов без необходимости изменения кода комплектации.
Режим отладки будет обслуживать отдельные, не минимизированные файлы (и никаких файлов.min). Вы можете проверить, установив
BundleTable.EnableOptimizations = false;
или полностью удалив эту строку и просто запустив ее в режиме отладки.