【问题标题】:Regarding js & css file bundle & minification关于 js & css 文件打包和缩小
【发布时间】:2013-06-28 18:01:40
【问题描述】:

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

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

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

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 测试我的页面时,我怎么能看到我自己?

寻求讨论。谢谢

【问题讨论】:

    标签: webforms bundling-and-minification asp.net-optimization


    【解决方案1】:
    1. 无需自己缩小文件。

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

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

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

    4. 一次性处理。

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

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

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

    【讨论】:

    • 感谢您的回答。什么 BundleTable.EnableOptimizations = false;有吗?
    • 它关闭捆绑和缩小。您可以判断,因为每个文件都将单独提供,而不是放在一个包中。所以它会显示为/Scripts/jquery-1.9.1.js 而不是/bundles/jquery?v=sometoken 在你看后面的代码......它不会缩小,也不会使用.min 文件。
    猜你喜欢
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    相关资源
    最近更新 更多