0

我有一个 mvc4 捆绑程序不包括扩展名为 .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>
4

2 回答 2

3

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

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

于 2013-06-11T07:27:20.127 回答
0

您要使用捆绑包的原因。

  • 声明一个语句,但生成多个导入资源代码。
  • 缩小你的 js 或 css 代码
  • 将多个文件捆绑到一个文件中,这将减少浏览器请求数。
  • Bundle 会给请求 url 一个根据文件生成的后缀。所以如果不缓存页面,就不会有js/css缓存问题,不需要清除浏览器缓存。

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

当它未启用调试时,文件将被捆绑。

所以如果你已经有 .min.js 文件,你可以直接在你的页面中导入它们。

于 2013-06-11T07:34:12.453 回答