Asp.Net MVC Bundle 不使用现有的 .min.js
Posted
技术标签:
【中文标题】Asp.Net MVC Bundle 不使用现有的 .min.js【英文标题】:Asp.Net MVC Bundle not using existing .min.js 【发布时间】:2012-09-10 19:02:48 【问题描述】:我正在使用 Asp.Net MVC 4 和内置的捆绑支持。在 BundleConfig.cs 中,我在 RegisterBundles 方法中添加了默认的 jquery:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-version.js"));
我的项目中还包含jquery-1.8.0.js
和jquery-1.8.0.min.js
。
调试时一切正常,但是当我设置 debug="false"
来测试捆绑时,它似乎正在缩小默认的 jquery 文件,而不是使用已经存在的缩小版本。当我在我的项目中查看 'min' 版本的 jquery 时,它在顶部包含一个小注释,第一个方法定义是 function(a,b)
。当我在浏览器中查看输出时,注释丢失并且第一个方法定义不同。
有没有其他人看到过这个问题?如何让捆绑机制使用现有的 .min 文件而不是重新缩小?
【问题讨论】:
这个答案可能对你有帮助***.com/a/12901050/230390 【参考方案1】:是否有您不希望重新优化文件的特定原因?它应该是安全的。目前没有办法选择性地禁用部分缩小,基本上所有文件都是先捆绑在一起的,然后再缩小整个捆绑包。
但是当 debug=false 时,它应该使用 jquery-1.8.0.min.js 文件而不是 jquery-1.8.0.js 文件。
【讨论】:
首先我试图了解捆绑是如何工作的,因为文档说将使用 .min 版本,但它看起来不是那样的。其次,当前的 Opera 版本有一个错误,会阻塞动态缩小的版本。 see here 由于您只是捆绑一个文件,并且它已经被缩小,您可以只创建一个普通的 Bundle 而不是 ScriptBundle,它永远不会缩小您的文件。【参考方案2】:添加带有通配符的文件时,名称中带有 min 的文件将被排除,请尝试重命名名称中不带 min 的文件。
【讨论】:
【参考方案3】:这可以通过在 web.config 中将属性 usePreMinifiedFiles 设置为 true 来设置
<core enableTracing="false" ...>
<js defaultMinifier="EdwardsJsMinifier" usePreMinifiedFiles="true">
【讨论】:
谢谢!在我的版本中,BundleTransformer.Configuration.xsdusePreMinifiedFiles=true
是默认值,但我需要 false
值。
你能帮我解决我的问题吗***.com/questions/26925521/…以上是关于Asp.Net MVC Bundle 不使用现有的 .min.js的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Web API 控制器添加到现有的 ASP.NET Core MVC?
在ASP.NET MVC中,使用Bundle来打包压缩js和css(转)
如何将 Web API 添加到现有的 ASP.NET MVC (5) Web 应用程序项目中?