Carattere jolly {versione} nel pacchetto MVC4


155

In MVC 4 abbiamo pacchetti. Durante la definizione dei bundle possiamo usare caratteri jolly come * per tutti i file in una cartella.

Nell'esempio seguente cosa -{version}significa?

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

Risposte:


177

Il -{version}mappe fondamentalmente ad una versione regex , o per essere precisi: (\d+(?:\.\d+){1,3}).
L'uso *tende a catturare troppo, ad esempio se si raggruppa jquery*, includendo jquery-uianche ciò che potrebbe incasinare l'ordinamento. Ma l'utilizzo ti jquery-{version}.jsfarebbe evitare di dover aggiornare la definizione del tuo bundle ogni volta che aggiorni jquery.

Altre cose da notare:

  • {version} funziona solo per l'ultima parte del percorso, sostanzialmente il nome del file, non una directory.
  • più versioni di jquery nella stessa cartella verranno tutte raggiunte.

2
Come funzionerebbe con più versioni di ex: jquery presenti nella cartella?
pavsaund

18
È una regex quindi includerebbe tutte le corrispondenze, quindi se avessi più versioni nella stessa directory probabilmente non vorrai usarlo.
Hao Kung

3
Si noti che {versione} non sembra funzionare all'interno di un percorso. Al lavoro, abbiamo la versione bootstrap nel percorso (non nel nome del file), quindi sto provando a fare questo: "~ / Content / Libraries / bootstrap / {version} /css/bootstrap.css" Ma quando corro RegisterBundles, ottengo un ArgumentException che dice "Directory non esiste".
Michael Nelson,

4
vota per non lavorare in una directory. Qualche soluzione per farlo funzionare in una directory?
Zapnologica,

3
Modifica: non importa, lo spiegano chiaramente qui! asp.net/mvc/overview/performance/bundling-and-minification Grazie!
Jon Koeter,

12

Questo bundle è in grado di accogliere i numeri di versione nei nomi degli script. Pertanto l'aggiornamento di jQuery a una nuova versione dell'applicazione (tramite NuGet o manualmente) non richiede alcuna modifica del codice / markup.

Vedere il seguente collegamento per ulteriori informazioni sul raggruppamento: http://weblogs.asp.net/jgalloway/archive/2012/08/16/asp-net-4-5-asp-net-mvc-4-asp-net- pagine web-2-e-visual-studio-2012-web-developer-features.aspx


3
Finché ci si assicura che le vecchie versioni siano effettivamente rimosse.
Triynko,

Quando utilizzo {version} ricevo Jquery non è definito e quando lo sostituisco con la versione attuale, nel mio caso 3.1.1 funziona benissimo.
Marc Roussel,

0

~/Scripts/jquery-{version}.jsè incluso in esso. Qui il sistema di raggruppamento è abbastanza intelligente da fare riferimento alla versione più alta del file jquery quando abbiamo specificato il selettore {versione} nel percorso. Inoltre, questo sistema di raggruppamento è abbastanza intelligente da scegliere la versione minimizzata del file, se disponibile nel percorso definito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.