Asp.net mvc 4 如何防止同一捆绑包重新生成?

Asp.net mvc 4 如何防止同一捆绑包重新生成?,asp.net-mvc-4,bundling-and-minification,Asp.net Mvc 4,Bundling And Minification,我们遇到的问题是,我们定义了两个包含.less文件的捆绑包,并且我们希望根据一些任意条件(假设捆绑包几乎相同,但可能有细微的外观差异),一次使用一个捆绑包,或者另一个捆绑包 假设我们在_layout.cshtml中有以下内容: @{ var bundleName="~/Content/LessBundle"; if (DateTime.Now.Minute % 2 == 1) { bundleName="~/Cont

我们遇到的问题是,我们定义了两个包含.less文件的捆绑包,并且我们希望根据一些任意条件(假设捆绑包几乎相同,但可能有细微的外观差异),一次使用一个捆绑包,或者另一个捆绑包

假设我们在_layout.cshtml中有以下内容:

    @{
        var bundleName="~/Content/LessBundle";
        if (DateTime.Now.Minute % 2 == 1)
        {
            bundleName="~/Content/LessBundle_v2";
        }
        @Styles.Render(bundleName);
    }
我们在Fiddler中看到的意外行为是,使用上述代码,每次在浏览器中刷新页面时,都会发生GET请求并返回200,但会生成相同的bundle ID

为了进一步演示,下面是我们在Fiddler输出(从最旧到最新的请求)中看到的内容

12:01:10: GET/blah/LessBundle?v=8wWviX6PRM-m1BrNdFSTtQQQo_2xtnt6d4aNKYp9p_Y1 HTTP/1.1(200返回代码) 12:01:20: GET/blah/LessBundle?v=8wWviX6PRM-m1BrNdFSTtQQQo_2xtnt6d4aNKYp9p_Y1 HTTP/1.1(200返回码)**************应为304 12:02:05 GET/blah/LessBundle?v=9yWviXPRM-k1brndfsttqqo_2ddddddd4ankyp9p_B1 HTTP/1.1(200返回代码)确定,应已返回新捆绑包 12:02:35 GET/blah/LessBundle?v=9yWviXPRM-k1brndfsttqqo_2ddddddd4ankyp9p_B1 HTTP/1.1(200返回码)**************应为304 我们试图弄清楚的是如何进行更改,以便在捆绑包没有更改的情况下,我们不会重新生成捆绑包并在每次请求时发送整个有效负载

非常感谢您的帮助

谢谢,
Dominique

所以,问题是我在chrome中按的是ctrl-f5而不是f5。这将强制缓存刷新,而不是执行常规刷新

当我通过f5刷新时,一切正常

没问题,走吧:)

12:01:10: GET /blah/LessBundle?v=8wWviX6PRM-m1BrNdFSTtQQQo_2xtnt6d4aNKYp9p_Y1 HTTP/1.1 (200 return code) 12:01:20: GET /blah/LessBundle?v=8wWviX6PRM-m1BrNdFSTtQQQo_2xtnt6d4aNKYp9p_Y1 HTTP/1.1 (200 return code) ***********should be 304 12:02:05 GET /blah/LessBundle?v=9yWviXPRM-k1BrNdFSTtQQQo_2dddddd4aNKYp9p_B1 HTTP/1.1 (200 return code) OK, new bundle should have been returned 12:02:35 GET /blah/LessBundle?v=9yWviXPRM-k1BrNdFSTtQQQo_2dddddd4aNKYp9p_B1 HTTP/1.1 (200 return code) ***********should be 304