【问题标题】:Asp.Net bundling not using the .min filesAsp.Net 捆绑不使用 .min 文件
【发布时间】:2015-03-12 09:08:15
【问题描述】:

根据发布模式中的文档,捆绑程序应使用 .min.js 文件(如果存在)。我通过以下方式添加角度:

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 来验证它以防万一)。

标签: c# asp.net asp.net-mvc bundling-and-minification


【解决方案1】:

在 ScriptBundle 的情况下,库似乎没有做它应该做的事情,并试图缩小任何文件。我将其更改为仅 Bundle,这似乎可以解决问题并加载预压缩版本。

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

【讨论】:

  • 使用 Bundle 而不是 ScriptBundle 也帮助我修复了一些似乎与捆绑过程有关的损坏的 javascript 错误。缩小肯定会破坏一些 JS。感谢分享技巧。
【解决方案2】:

请在您的项目中的同一文件夹下同时拥有正常版本和缩小版本的脚本,例如

script.js
script.min.js

您只将script.js 添加到代码中的包中。 因此,script.js 包含在 DEBUG 模式中,script.min.js 包含在 RELEASE 模式中。

Microsoft MVC4 平台认为您至少同时拥有 每个脚本或样式的缩小版本和未缩小版本 Bundle(也可以使用其他文件,例如 Debug 和 vsdoc)。

【讨论】:

  • 这正是我所拥有的,不幸的是它不起作用。我的 Scripts 文件夹只有 2 个文件:angular.js、angular.min.js 和 .min.js 文件未在发布中使用。
  • 有些库只附带 .min 文件,那么有没有办法包含它们?
  • @ChrisP 对于这种情况,我会考虑this answer..
猜你喜欢
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
  • 2023-03-21
  • 2016-11-20
相关资源
最近更新 更多