【发布时间】:2013-09-17 08:44:19
【问题描述】:
在 MVC 4 中,使用Bundles 定义要包含的文件,可以使用{version} 通配符,例如...
"~/Scripts/jquery-{version}.js"
当您在文件夹中有一个版本时,这很有效,例如jquery-1.7.js。但是,当我们在文件夹jquery-1.7.js 和jquery-1.9.js 中有两个版本时,它似乎选择了旧版本,而忽略了新版本。
{version} 通配符是否找到第一个实例,然后继续?如果是这样,则此示例中的第一个实例似乎是旧版本(因为 1.7 在 1.9 之前出现)。那么,如果我们有两个文件,有没有办法强制它查找最新版本?
注意:以上版本号可能不准确,仅供参考。
【问题讨论】:
-
这里已经讨论了一些信息:stackoverflow.com/questions/12029161/…
-
它并没有真正回答这个问题,我们可以强制它获取最新版本吗?如果答案是确保你的脚本目录只有你想要的版本使用,那很好,但我只是想与可能遇到相同问题的其他人核实。
-
其他讨论中的这条评论应该足够清楚:“它是 [{version} 是] 一个正则表达式,因此它将包含所有匹配项,因此如果您在同一目录中有多个版本,您可能不会想用这个。”如果这是真的,那么我猜这两个版本都包含在内,而最后一个加载的版本是覆盖/修改之前加载的代码。您可以通过在 web.config 中使用 debug="true" 运行并查看从页面输出的 html 来验证这一点。
-
@JeremyCook,您可以使用 firebug / chrome 工具查看已加载的内容 - 我可以验证是否正在加载旧的。我只是想知道我们是否可以强制它加载最新版本。
-
您可以使用 IBundleOrderer ala stackoverflow.com/questions/14563415/… 我自己没用过。就个人而言,我会考虑手动指定脚本或将旧脚本放在单独的文件夹中。
标签: asp.net-mvc asp.net-mvc-4 bundle