1

我从不使用这个功能。所以我正在阅读一些关于它的文章。在阅读了关于捆绑和缩小的文章后,我的脑海中产生了一些混乱。所以我想知道并清除那些在这里问的困惑。

1)我可以理解什么是捆绑和缩小,但想知道每次都会即时完成缩小,还是我需要在保存到 js 文件夹之前缩小任何 js 文件?

2) bundle.add() 做什么?它会先缩小然后将文件包含在 bundle 中吗?

3)如果文件已经被缩小并且名称像 jquery.min.js 那么会发生什么......发生任何错误?

4)如果缩小将即时完成,那么每次不同的客户端请求任何页面时都会发生它还是只处理一次?

5)缩小后缩小版本将被服务器缓存以防止一直缩小?

6)

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                 "~/Scripts/jquery-{version}.js"));

    // Code removed for clarity.
    BundleTable.EnableOptimizations = true;
}

please have a look at this code
"~/Scripts/jquery-{version}.js"));
is it wild card use {}

7)我知道实际版本的js文件将在调试期间提供,而不是缩小版本。是真的吗?当我从 IDE 测试我的页面时,我怎么能看到我自己?

寻找讨论。谢谢

4

1 回答 1

2
  1. 无需自己缩小文件。

  2. bundles.Add在您的示例中将执行许多操作之一:在调试模式下,它将添加 jquery 的非缩小版本(在这种情况下,脚本单独显示,而不是捆绑显示)。这样做是出于调试目的。

    在非调试模式下,它将使用缩小版本(如果存在)。如果不存在,它会为您缩小它并将其放入捆绑包中...按文件名的字母顺序或您指定的顺序。它还会根据需要将已知库放在包的顶部(如 jQuery)。

  3. 没有错误,但在调试模式下,不使用 .min 文件。

  4. 一次处理。

  5. 同 4。当文件更改时将创建新包,查询字符串“v”强制客户端下载新包。“查询字符串 v 有一个值标记,它是用于缓存的唯一标识符。只要包没有更改,ASP.NET 应用程序就会使用此标记请求包。如果包中的任何文件更改 [它] 将生成一个新的令牌,保证浏览器将获得最新的捆绑包。” 资源

  6. 是的,它是一个版本通配符,可以在您的 Scripts 文件夹中使用适当版本的 jQuery 自动创建一个 jQuery 包。允许您更新脚本版本,而无需更改捆绑代码。

  7. 调试模式将提供单独的非缩小文件(并且没有 .min 文件)。您可以通过设置BundleTable.EnableOptimizations = false;或完全删除该行并仅在调试模式下运行来进行测试。

于 2013-07-01T17:59:56.113 回答