【问题标题】:Asp.Net MVC Bundle not using existing .min.jsAsp.Net MVC Bundle 不使用现有的 .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.jsjquery-1.8.0.min.js

调试时一切正常,但是当我设置 debug="false" 来测试捆绑时,它似乎正在缩小默认的 jquery 文件,而不是使用已经存在的缩小版本。当我在我的项目中查看 'min' 版本的 jquery 时,它在顶部包含一个小注释,第一个方法定义是 function(a,b)。当我在浏览器中查看输出时,注释丢失并且第一个方法定义不同。

有没有其他人看到过这个问题?如何让捆绑机制使用现有的 .min 文件而不是重新缩小?

【问题讨论】:

标签: asp.net-mvc-4 bundle asp.net-optimization


【解决方案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.xsd usePreMinifiedFiles=true 是默认值,但我需要 false 值。
    • 你能帮我解决我的问题吗stackoverflow.com/questions/26925521/…
    猜你喜欢
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 2013-03-02
    • 2011-01-17
    • 1970-01-01
    相关资源
    最近更新 更多