MVC4 Bundle中的{version}通配符

时间:2012-08-19 19:04:39

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-optimization

在MVC 4中,我们有捆绑。在定义包时,我们可以使用*这样的通配符来处理文件夹中的所有文件。

在下面的例子中-{version}是什么意思?

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

3 个答案:

答案 0 :(得分:175)

-{version}基本上映射到版本regex,或者确切地说是(\d+(?:\.\d+){1,3})
使用*往往会占用太多,例如,如果您捆绑jquery*,那么也会包含jquery-ui,这可能会破坏排序。但是,使用jquery-{version}.js可以避免每次升级jquery时都必须更新bundle定义。

需要注意的其他事项:

  • {version}仅适用于路径的最后部分 - 基本上是文件名 - 而不是目录。
  • 同一个文件夹中的多个jquery版本都将被捕获。

答案 1 :(得分:12)

此捆绑包能够容纳脚本名称中的版本号。因此,将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

答案 2 :(得分:0)

~/Scripts/jquery-{version}.js包含在其中。当我们在路径中指定{version}选择器时,这里的捆绑系统足够聪明,可以引用最高版本的jquery文件。而且,这种捆绑系统足够聪明,可以选择文件的缩小版本(如果在定义的路径上可用)。