【问题标题】:MVC4 bundle {version} wildcard chokes on non-numeric versioning非数字版本控制上的 MVC4 捆绑 {version} 通配符扼流圈
【发布时间】:2012-10-03 23:49:25
【问题描述】:

根据MS bundling dev{version} 通配符是(\d+(?:.\d+){1,3}) 的正则表达式。这区别于:

jquery-1.8.2.js
jquery-ui-1.9.0.js

但是由于非数字编号(#.#.#pre),它窒息了:

html5shiv-3.6.2pre.min.js
html5shiv-printshiv-3.6.2pre.min.js

所以我正在这样做:html5shiv-3*html5shiv-printshiv-*。但这当然意味着我必须在脚本更改时更新捆绑包。

我只是以 html5shiv 为例。这个问题很普遍,因为包含“pre”、“beta”、“-a”、“-alpha”等很常见。解决方案是手动重命名文件,但不是通过 nuget 自动重命名。

我做错了吗?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-4 asp.net-optimization bundling-and-minification


    【解决方案1】:

    我不明白你的问题。

    如果您使用语法{version},您仍然可以使用-pre 或-min 等后缀

    一个例子是

     bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                            "~/Scripts/jquery-{version}-min.js"));
    

    它不必在版本变量中包含 -min。

    【讨论】:

    • 我认为“pre”是版本号的一部分?下一个版本可能有,也可能没有。想想“1.2.3beta”,下一个版本可能没有“beta”。因此,如果您将其放入声明中,则每次都必须对其进行编辑。
    • 另外,我不知道后缀是允许的!是否有官方允许的后缀/前缀/通配符列表?我还没有看到关于这方面的全面文档。
    【解决方案2】:

    听起来 {version} 正则表达式应该匹配语义版本以说明 -pre/alpha1 后缀。我会将其添加到我们的待办事项中。

    【讨论】:

    • 这将有很大帮助,并使自动使用大量 nuget 包成为可能。不过,不确定如何解释所有不同的模式。也许要寻找尾随的“。”或“.min”或“.css”或“.min.css”或类似的东西。
    猜你喜欢
    • 2012-10-11
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    相关资源
    最近更新 更多