ASP.NET 脚本捆绑包中的 MVC {version} 通配符选择调试版本
ASP.NET MVC {version} wildcard in script bundle selects debug version?
我正在尝试使用从NuGet导入的Knockout.js,其中包括knockout-3.2.0.js
和knockout-3.2.0.debug.js
。我添加了一个新的捆绑包,例如
bundles.Add(new ScriptBundle("~/bundles/knockout").Include(
"~/Scripts/knockout-{version}.js"));
但是,当我检查网页时,事实证明加载的捆绑包knockout-3.2.0.debug.js
.
我读了以下问题
- 什么是 ScriptBundle("~/scripts/jquery-{version}.js") 中的 {version}
- MVC4 捆绑包中的 {版本} 通配符
这似乎对回答我的问题没有特别帮助。
中,你可以有多个解决方案配置(它是Visual Studio主菜单下按钮变量中的一个下拉列表,默认情况下在标准栏中)。默认情况下,创建新项目(或解决方案)时,有 2 个可用配置:"调试"和"发布"。(您也可以在构建>配置管理器中访问此功能...菜单)。
在生成解决方案或 porject(或发布解决方案)时,必须选择以下配置之一:
如果选择"调试",则使用调试信息编译项目,以便可以将其附加到 VS 调试器并将运行的代码与源文件关联。此外,还会发生一些其他事情,例如,捆绑器将使用JS文件的调试版本,而不是生成缩小的捆绑包。这背后的想法是,如果您使用此配置,那是因为您想要调试代码。
如果选择"发布",则编译项目时不带调试信息。捆绑包使用脚本的普通或缩小版本,并且每个完整的捆绑包都转换为单个缩小文件
因此,您需要做的是选择正确的配置。考虑到这会影响 js 捆绑和程序集的创建。有时,程序集中的代码甚至可以具有更好的性能,因为发布版本将具有一些优化,这些优化在程序集的调试版本中应用,以允许对其进行调试。
这是因为脚本文件夹中存在JS的调试版本。
如果您查看其他 js,则不存在调试文件,因此它将使用 jquery.1.7.0.js,但如果您复制粘贴 jquery.1.7.0.debug.js那么它将选择它。
如果你想使用KNOCKOUT-3.2.0.js,那么删除js的调试版本。
你也可以去web.config
<system.web>
<compilation debug="false" targetFramework="4.0" />
// set debug="true" or debug="false"
如果设置了 debug=true,则选择调试版本,或者如果调试为 false,则选择另一个版本的 JS。
- JavaScript中的通配符日期形式
- JavaScript上的通配符(也许这不费吹灰之力?)
- 带有通配符的姓氏Reg表达式
- Mongoose:布尔型'或者'使用通配符查询
- jQuery的通配符委派
- 聚合物和页面.js路由中的通配符
- javascript中通配符搜索的正则表达式
- Node.js/Expss.js.如果与通配符路由器一起使用,则无法识别静态路由器
- 如何在JQuery中使用带有.html的通配符
- 如何解释BusterJS测试路径中的通配符
- Javascript-IF语句中的通配符
- jQuery选择器中的通配符
- 函数调用中的javascript通配符
- OData:对url请求中的数字(ID)字段进行通配符(startswith)筛选
- Javascript:通配符正则表达式搜索
- Javascript/Jquery.使用带通配符的正则表达式将纯文本替换为html
- 将通配符与javascript拆分函数结合使用
- 使用javascript's替换为通配符以更改字符串中的width属性
- Grunt-Uglify通配符和版本控制
- ASP.NET 脚本捆绑包中的 MVC {version} 通配符选择调试版本