ASP.NET捆绑和缩小.每次请求运行一次?

IGI*_*GIT 5 asp.net-mvc

我想知道捆绑和缩小在服务器上运行的次数有多少?

每个HTML请求一次吗?每次浏览器会话一次?每次应用程序部署后?

joh*_*ose 6

在调用Application_Start方法时,在部署或重新启动应用程序时会创建分发包Global.asax.cs.在内部Application_Start,BundleConfig.RegisterBundles被调用,这实际上是魔术发生的地方.

public class MvcApplication : System.Web.HttpApplication
{
    // this method is called on application start
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas(); // registers areas
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); // registers filters
        RouteConfig.RegisterRoutes(RouteTable.Routes); // registers routes
        BundleConfig.RegisterBundles(BundleTable.Bundles); // this generates the bundles
    }
}
Run Code Online (Sandbox Code Playgroud)

在您的BundleConfig.cs文件中,该RegisterBundles方法是调用以创建所述包的方法.

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        // this is actually what's creating the bundles
        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));
        // etc...
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将它们缓存在内存中,可以进行访问/bundles/bundlename?v=versionId,并提供每个HTTP请求,但捆绑和微小只发生一次的实际过程.