{version} symbol wieloznaczny w pakiecie MVC4

155

W MVC 4 mamy paczki. Podczas definiowania paczek możemy używać symboli wieloznacznych, takich jak *, dla wszystkich plików w folderze.

Co w poniższym przykładzie -{version}oznacza?

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-{version}.js"));
}
Ricardo Polo Jaramillo
źródło

Odpowiedzi:

177

-{version}Zasadzie mapy do wersji regex , lub dokładniej: (\d+(?:\.\d+){1,3}).
Używanie *ma tendencję do chwytania za dużo, na przykład jeśli pakujesz jquery*, będzie to jquery-uirównież obejmować, co może zepsuć zamówienie. Jednak użycie jquery-{version}.jspozwoliłoby uniknąć konieczności aktualizowania definicji pakietu za każdym razem, gdy aktualizujesz jquery.

Dodatkowe uwagi:

  • {version} działa tylko dla ostatniej części ścieżki - w zasadzie nazwy pliku - nie katalogu.
  • wiele wersji jquery w tym samym folderze zostanie złapanych.
Hao Kung
źródło
2
Jak by to działało z wieloma wersjami ex: jquery obecnymi w folderze?
pavsaund
18
Jest to wyrażenie regularne, więc zawierałoby wszystkie dopasowania, więc gdybyś miał wiele wersji w tym samym katalogu, prawdopodobnie nie chciałbyś tego używać.
Hao Kung
3
Zauważ, że {version} nie wydaje się działać w obrębie ścieżki. W pracy mamy wersję bootstrap w ścieżce (nie w nazwie pliku), więc próbuję to zrobić: "~ / Content / Libraries / bootstrap / {version} /css/bootstrap.css" Ale kiedy uruchamiam RegisterBundles, pojawia się ArgumentException o treści „Katalog nie istnieje”.
Michael Nelson
4
zagłosuj za niepracowaniem w katalogu. Jakieś rozwiązania, aby to działało w katalogu?
Zapnologica
3
Edycja: nieważne, jasno to wyjaśniają tutaj! asp.net/mvc/overview/performance/bundling-and-minification Dziękujemy!
Jon Koeter
12

Ten pakiet może pomieścić numery wersji w nazwach skryptów. Dlatego aktualizacja jQuery do nowej wersji w aplikacji (za pośrednictwem NuGet lub ręcznie) nie wymaga żadnych zmian kodu / znaczników.

Więcej informacji na temat sprzedaży wiązanej można znaleźć pod następującym łączem: 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

MUG4N
źródło
3
O ile upewnisz się, że stare wersje zostały rzeczywiście usunięte.
Triynko
Podczas korzystania z {wersja} otrzymuję Jquery jest niezdefiniowany i kiedy zastępuję aktualną wersję, w moim przypadku 3.1.1 działa dobrze.
Marc Roussel,
0

~/Scripts/jquery-{version}.jsjest w nim zawarte. Tutaj system sprzedaży wiązanej jest wystarczająco inteligentny, aby odwoływać się do najwyższej wersji pliku jquery, gdy określiliśmy selektor {wersja} w ścieżce. Ponadto ten system sprzedaży wiązanej jest wystarczająco inteligentny, aby wybrać zminimalizowaną wersję pliku, jeśli jest dostępna w zdefiniowanej ścieżce.

leoli
źródło