{version} в MVC4 Bundle

В MVC 4 имеются пучки. При определении пакетов мы можем использовать подстановочные знаки, такие как * для всех файлов в папке.

В приведенном ниже примере, что означает -{version}?

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

Ответ 1

-{version} в основном сопоставляется с версией regex, или, если быть точным: (\d+(?:\.\d+){1,3}).
Использование * имеет тенденцию захватывать слишком много, например, если вы связываете jquery*, который будет включать в себя jquery-ui, что может помешать упорядочению. Но использование jquery-{version}.js позволило бы вам избежать необходимости обновлять определение пакета каждый раз, когда вы обновляете jquery.

Дополнительные примечания:

  • {version} работает только для последней части пути - в основном имя файла - не каталог.
  • несколько версий jquery в той же папке все поймают.

Ответ 2

Этот пакет способен размещать номера версий в именах script. Поэтому обновление jQuery для новой версии вашего приложения (через NuGet или вручную) не требует изменений кода/разметки.

Для получения дополнительной информации об объединении см. следующую ссылку: http://weblogs.asp.net/jgalloway/archive/2012/08/16/asp-net-4-5-asp-net-mvc-4-asp-net-web-pages-2-and-visual-studio-2012-web-developer-features.aspx

Ответ 3

~/Scripts/jquery-{version}.js включена в него. Здесь система связывания достаточно умна, чтобы ссылаться на самую высокую версию файла jquery, когда мы указали селектор {версия} в пути. Кроме того, эта система связывания достаточно умна, чтобы выбрать минимизированную версию файла, если она доступна по заданному пути.