【问题标题】:ASP.Net MVC Bundler not including my .min file in ReleaseASP.Net MVC Bundler 在 Release 中不包括我的 .min 文件
【发布时间】:2013-06-06 23:26:52
【问题描述】:

我遇到了 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>

【问题讨论】:

  • 创建新问题时,StackOverflow 会建议可能提供答案的现有问题。请注意这些,如果您仍然找不到答案,请仅发布新问题。 Google 也是一个非常有用的工具,因为 StackOverflow 问题在 Google 中的排名非常

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


【解决方案1】:

您要使用捆绑包的原因。

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

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

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

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

【讨论】:

    【解决方案2】:

    为什么不渲染为:&lt;script src="/Scripts/bootstrap.min.js"&gt;&lt;/script&gt;

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

    【讨论】:

    • 渲染的代码实际上和bootstrap.min.js文件不同,渲染需要230ms。 min.js 文件以: !function(a){a(function(){"use strict" 开始渲染的文件以: !function(n){n(function(){n.support.transition
    猜你喜欢
    • 2012-08-12
    • 2010-09-19
    • 2013-02-04
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    相关资源
    最近更新 更多