Asp.net mvc 4 如何在MVC5中启用捆绑包缓存

Asp.net mvc 4 如何在MVC5中启用捆绑包缓存,asp.net-mvc-4,bundling-and-minification,Asp.net Mvc 4,Bundling And Minification,我在我的mvc项目中创建了2个捆绑包,如下所示: public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/Scripts/BaseScripts").Include( "~/Content/js/jquery-{version}.js", "~/Content/js/jquery-ui-{v

我在我的mvc项目中创建了2个捆绑包,如下所示:

 public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/Scripts/BaseScripts").Include(
            "~/Content/js/jquery-{version}.js",
            "~/Content/js/jquery-ui-{version}.js",
            "~/Scripts/jquery.unobtrusive-ajax.min.js",
            "~/Content/js/bootstrap.js",
             "~/Content/js/bootstrap-datepicker.js",
              "~/Scripts/jquery.validate.min.js",
              "~/Scripts/jquery.validate.unobtrusive.js",
              "~/Scripts/customvalidation.js"

            )
        );

        bundles.Add(new ScriptBundle("~/Scripts/CustomScripts").Include(
                        "~/Content/js/customscripts/commonscript.js",
          "~/Content/js/customscripts/registration.js"
        ));

        bundles.Add(new StyleBundle("~/Styles/Css").Include(
            "~/Content/css/bootstrap.min.css",
            "~/Content/css/ymobiz.css",
            "~/Content/css/Style.css",
            "~/Content/css/datepicker3.css",
            "~/Content/font-awesome-4.1.0/css/font-awesome.min.css",
            "~/Content/css/css.css"
            ));


        //To enable bundling and minification
        BundleTable.EnableOptimizations = true;
    }

现在我还需要为这些文件启用缓存。是否有任何方法可以控制这些捆绑包的缓存持续时间文件

MVC捆绑包作为单个静态文件返回给浏览器,默认情况下,浏览器的缓存时间设置为1年。ASP.NET MVC负责跟踪捆绑包文件的更改,并在任何文件的内容更改或从捆绑包中添加/删除文件时更改捆绑包url

由于捆绑包已经被缓存,并且更改跟踪由asp.net mvc framework维护,您还需要对这些捆绑包进行哪些缓存控制

编辑(回应评论)

不幸的是,你不能改变这个限制。缓存限制由
BundleHandler
类的
ProcessRequest
方法处理,这是
内部密封的
,因此您不可能继承\覆盖这些请求


有关更多详细信息,您可以。

MVC捆绑包作为单个静态文件返回给浏览器,默认情况下,浏览器的缓存时间设置为1年。ASP.NET MVC负责跟踪捆绑包文件的更改,并在任何文件的内容更改或从捆绑包中添加/删除文件时更改捆绑包url

由于捆绑包已经被缓存,并且更改跟踪由asp.net mvc framework维护,您还需要对这些捆绑包进行哪些缓存控制

编辑(回应评论)

不幸的是,你不能改变这个限制。缓存限制由
BundleHandler
类的
ProcessRequest
方法处理,这是
内部密封的
,因此您不可能继承\覆盖这些请求

有关更多详细信息,您可以。

在webconfig中添加一个键

<appSettings>  
<add key="Version" value="sa291988" />  
</appSettings>
在webconfig中添加密钥

<appSettings>  
<add key="Version" value="sa291988" />  
</appSettings>

可能重复感谢反馈Sameersee stackoverflow.com/a/34508048/1545567控制缓存持续时间感谢反馈Sameersee stackoverflow.com/a/34508048/1545567控制缓存持续时间
@Styles.RenderFormat(SiteKeys.StyleVersion,"~/Content/css") 
@Scripts.RenderFormat(SiteKeys.ScriptVersion,"~/bundles/jquery")