ASP.Net MVC Bundler在Release中不包含我的.min文件

时间:2013-06-11 07:22:44

标签: asp.net asp.net-mvc asp.net-mvc-4 bundling-and-minification

我遇到mvc4 bundler的问题,不包括扩展名为.min.js的文件。 在我的Scripts文件夹中,我有两个文件:bootstrap.js,bootstrap.min.js

在我的BundleConfig类中,我声明了

#if !DEBUG
            BundleTable.EnableOptimizations = true;            
#endif
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include("~/Scripts/bootstrap.js"));

在Debug中运行时,它按预期呈现:

<script src="/Scripts/bootstrap.js"></script>

在Release中运行时,它呈现为:

<script src="/bundles/bootstrap?v=57XuMf8ytOYgVErEDhgFDRtQ5jlC48bryka4m2DVq_M1"></script>

为什么不呈现为:

<script src="/Scripts/bootstrap.min.js"></script>

2 个答案:

答案 0 :(得分:3)

  

为什么不呈现为:<script src="/Scripts/bootstrap.min.js"></script>

因为这是捆绑在ASP.NET MVC 4中的工作原理。不用担心,此/bundles/bootstrap?v=57XuMf8ytOYgVErEDhgFDRtQ5jlC48bryka4m2DVq_M1的内容正是/Scripts/bootstrap.min.js的内容。在这种情况下,捆绑机制没有缩小/Scripts/bootstrap.js文件,而是使用已经缩小的版本。

答案 1 :(得分:0)

您想要使用捆绑包的原因。

  • 声明一条语句,但会生成多个导入资源代码。
  • 缩小您的js或css代码
  • 将多个文件捆绑到一个文件中,这将减少浏览器 请求编号。
  • Bundle会给请求url一个后缀,它是基于生成的 文件。因此,如果您不缓存页面,将没有js / css 缓存问题,您不需要清除浏览器缓存。

默认情况下,当你处于调试模式时(你可以修改你的Web.config以设置是否启用DEBUG),js / css文件将不会被捆绑,所以你可以单独看到文件,这将使它更容易调试。

如果未启用调试,则会捆绑文件。

因此,如果您已有.min.js文件,则可以直接在页面中导入它们。