Curinga {version} no MVC4 Bundle

155

No MVC 4, temos pacotes. Ao definir os pacotes configuráveis, podemos usar curingas como * para todos os arquivos em uma pasta.

No exemplo abaixo, o que -{version}significa?

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

Respostas:

177

O -{version}mapas, basicamente, uma versão regex , ou para ser mais preciso: (\d+(?:\.\d+){1,3}).
O uso *tende a pegar muito, por exemplo, se você agrupar jquery*, isso incluirá jquery-uitambém o que pode atrapalhar o pedido. Mas o uso jquery-{version}.jsevitaria a necessidade de atualizar sua definição de pacote configurável toda vez que você atualizar o jquery.

Coisas adicionais a serem observadas:

  • {version} só funciona para a última parte do caminho - basicamente o nome do arquivo - não para um diretório.
  • várias versões do jquery na mesma pasta serão apanhadas.
Hao Kung
fonte
2
Como isso funcionaria com várias versões do ex: jquery presentes na pasta?
pavsaund
18
É um regex, portanto inclui todas as correspondências; portanto, se você tiver várias versões no mesmo diretório, provavelmente não desejará usá-lo.
Hao Kung
3
Observe que {version} parece não funcionar dentro de um caminho. No trabalho, temos a versão de bootstrap no caminho (não no nome do arquivo), então estou tentando fazer isso: "~ / Content / Libraries / bootstrap / {version} /css/bootstrap.css" Mas quando executo RegisterBundles, recebo uma ArgumentException que diz "O diretório não existe".
9133 Michael Nelson
4
vote por não trabalhar em um diretório. Alguma solução para fazê-lo funcionar em um diretório?
Zapnologica
3
Edit: deixa pra lá, eles explicam claramente aqui! asp.net/mvc/overview/performance/bundling-and-minification Obrigado!
Jon Koeter 12/09
12

Este pacote configurável pode acomodar números de versão em nomes de script. Portanto, atualizar o jQuery para uma nova versão no seu aplicativo (via NuGet ou manualmente) não requer nenhuma alteração no código / marcação.

Consulte o link a seguir para obter mais informações sobre empacotamento: http://weblogs.asp.net/jgalloway/archive/2012/08/16/asp-net-4-5-asp-net-mvc-4-asp-net- páginas-da-web-2-e-visual-studio-2012-web-developer-features.aspx

MUG4N
fonte
3
Contanto que você verifique se as versões antigas foram realmente removidas.
Triynko
Ao usar {version}, recebo o Jquery indefinido e, quando substituo pela versão atual, no meu caso 3.1.1, ele funciona bem.
Marc Roussel
0

~/Scripts/jquery-{version}.jsestá incluído nele. Aqui, o sistema de empacotamento é inteligente o suficiente para referenciar a versão mais alta do arquivo jquery quando especificamos o seletor {version} no caminho. Além disso, esse sistema de compactação é inteligente o suficiente para escolher a versão reduzida do arquivo, se disponível no caminho definido.

leoli
fonte