Webforms 关于js&;css文件包&;缩小

Webforms 关于js&;css文件包&;缩小,webforms,bundling-and-minification,asp.net-optimization,Webforms,Bundling And Minification,Asp.net Optimization,我从来没有使用过这个功能。所以我读了几篇关于它的文章。读了一篇关于捆绑和缩小的文章后,我的脑海中产生了一些困惑。所以我想知道并澄清这些疑惑 1) 我可以理解什么是捆绑和缩小,但想知道缩小将在飞行中的每一次或我需要缩小任何js文件之前保存到js文件夹 2) bundle.add()的作用是什么?它是否先缩小,然后将文件包含在捆绑包中 3) 如果文件已经缩小,并且名称类似于jquery.min.js,那么会发生什么…会发生任何错误吗 4) 如果小型化将在运行中完成,那么它是否会在每次不同的客户端请求

我从来没有使用过这个功能。所以我读了几篇关于它的文章。读了一篇关于捆绑和缩小的文章后,我的脑海中产生了一些困惑。所以我想知道并澄清这些疑惑

1) 我可以理解什么是捆绑和缩小,但想知道缩小将在飞行中的每一次或我需要缩小任何js文件之前保存到js文件夹

2) bundle.add()的作用是什么?它是否先缩小,然后将文件包含在捆绑包中

3) 如果文件已经缩小,并且名称类似于jquery.min.js,那么会发生什么…会发生任何错误吗

4) 如果小型化将在运行中完成,那么它是否会在每次不同的客户端请求任何页面时发生,或者是仅一次的过程

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

(六)

7) 我知道在调试过程中将提供js文件的actaul版本,而不是缩小版本。这是真的吗?当我从IDE测试我的页面时,我怎么能看到它呢

期待讨论。谢谢

  • 没有必要自己缩小文件

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

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

  • 无错误,但在调试模式下,不使用.min文件

  • 一次性处理

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

  • 是的,这是一个版本通配符,可以在脚本文件夹中自动创建具有适当版本jQuery的jQuery捆绑包。允许您更新脚本版本,而无需更改绑定代码

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


  • 谢谢你的回答。BundleTable.EnableOptimizations=false;是吗?它关闭捆绑和缩小。您可以知道,因为每个文件将单独提供,而不是在一个包中。因此,它将显示为
    /Scripts/jquery-1.9.1.js
    ,而不是
    /bundles/jquery?v=sometoken
    ,您可以查看后面的代码。。。它不会缩小,也不会使用.min文件。
    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 {}