Asp.Net捆绑未使用.min文件

5

根据发布模式文档,如果存在.min.js文件,则捆绑程序应该使用它。我正在以下方式添加angular:

bundles.Add(new ScriptBundle(Bundles.Scripts).Include(
                        "~/Content/Scripts/angular.js"));

我有angular.js和angular.min.js在同一个文件夹中。根据我的理解,打包工具应该只使用angular.min.js而不做其他事情。但是当我检查HTTP响应结果时,它与我的理解不同。它也被压缩了,但所有名称都不同。
在浏览器中得到的内容:
(function(n,t,i){"use strict";function v(n)

Angular.min.js

(function(P,X,u){'use strict';function M(b)

有人能解释一下这是为什么吗?打包工具是忽略 .min 文件还是会再次压缩 .min.js 文件?

附注:我已经尝试删除 angular.js 文件,结果得到一个空的输出,所以看起来打包工具完全不在意是否存在 angular.min.js。


这并没有帮助,因为如果没有打开捆绑,我甚至看不到捆绑文件,只能看到单个文件(我已经进行了验证,以防万一也将其设置为true)。 - Ilya Chernomordik
2个回答

6

看起来在ScriptBundle的情况下,该库没有执行其应该执行的操作,并试图压缩任何文件。我将其更改为只是Bundle,这似乎可以解决问题并加载预先压缩的版本。

在这里找到了答案:Style bundling for MVC4 not using min files


使用Bundle而不是ScriptBundle还帮助我修复了一些似乎与捆绑过程有关的损坏的JavaScript错误。缩小肯定会破坏一些JS。感谢分享这个技巧。 - AFract

1
请在您的项目中同一文件夹下提供脚本的正常和缩小版本,例如:
script.js
script.min.js

你只需要在代码中添加 script.js 到一个 bundle 中。 结果是,在 DEBUG 模式下会包含 script.js,而在 RELEASE 模式下会包含 script.min.js

Microsoft MVC4 平台认为每个 Script 或 Style Bundle 都至少有一个压缩版本和一个未压缩版本(还有其他文件如 Debug 和 vsdoc)。


这正是我所拥有的,但不幸的是它无法工作。我有一个Scripts文件夹,里面只有2个文件:angular.js和angular.min.js,而.min.js文件在发布中没有使用。 - Ilya Chernomordik
2
有些库只提供.min文件,那么有没有一种方法可以将它们包含进来呢? - ChrisP
@ChrisP 对于这种情况,我会考虑参考这个答案 - hastrb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接