{versión} comodín en el paquete MVC4

155

En MVC 4 tenemos paquetes. Al definir los paquetes, podemos usar comodines como * para todos los archivos en una carpeta.

En el siguiente ejemplo, ¿qué -{version}significa?

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

Respuestas:

177

El -{version}básicamente se correlaciona con una versión de expresiones regulares , o para ser más precisos: (\d+(?:\.\d+){1,3}).
El uso *tiende a tomar demasiado, por ejemplo, si haces un paquete jquery*, eso también incluirá jquery-uilo que podría estropear el pedido. Pero usar jquery-{version}.jsle permitiría evitar tener que actualizar su definición de paquete cada vez que actualice jquery.

Cosas adicionales a tener en cuenta:

  • {version} solo funciona para la última parte de la ruta, básicamente el nombre del archivo, no un directorio.
  • todas las versiones múltiples de jquery en la misma carpeta quedarán atrapadas.
Hao Kung
fuente
2
¿Cómo funcionaría esto con múltiples versiones de ex: jquery presentes en la carpeta?
Pavsaund
18
Es una expresión regular, por lo que incluiría todas las coincidencias, por lo que si tuviera varias versiones en el mismo directorio, probablemente no querría usar esto.
Hao Kung
3
Tenga en cuenta que {versión} no parece funcionar dentro de una ruta. En el trabajo, tenemos la versión de bootstrap en la ruta (no en el nombre del archivo), así que estoy tratando de hacer esto: "~ / Content / Libraries / bootstrap / {version} /css/bootstrap.css" Pero cuando ejecuto RegisterBundles, obtengo una excepción ArgumentException que dice "El directorio no existe".
Michael Nelson
44
vote por no trabajar en un directorio. ¿Alguna solución para que funcione en un directorio?
Zapnologica
3
Editar: no importa, ¡claramente lo explican aquí! asp.net/mvc/overview/performance/bundling-and-minification ¡ Gracias!
Jon Koeter
12

Este paquete puede acomodar números de versión en nombres de script. Por lo tanto, actualizar jQuery a una nueva versión en su aplicación (a través de NuGet o manualmente) no requiere ningún cambio de código / marcado.

Consulte el siguiente enlace para obtener más información sobre la agrupación: 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
fuente
3
Siempre y cuando se asegure de que las versiones antiguas se eliminen realmente.
Triynko
Cuando uso {version} recibo Jquery no está definido y cuando lo reemplazo con la versión real, en mi caso 3.1.1 funciona bien.
Marc Roussel
0

~/Scripts/jquery-{version}.jsEstá incluido en él. Aquí el sistema de agrupación es lo suficientemente inteligente como para hacer referencia a la versión más alta del archivo jquery cuando especificamos el selector {versión} en la ruta. Además, este sistema de agrupación es lo suficientemente inteligente como para elegir la versión minimizada del archivo, si está disponible en la ruta definida.

leoli
fuente