0

我们遇到的问题是我们已经定义了两个包含 .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-k1BrNdFSTtQQQo_2dddddd4aNKYp9p_B1 HTTP/1.1 (200 return code) OK,应该已经返回了新的bundle
12:02:35
GET /blah/LessBundle?v=9yWviXPRM-k1BrNdFSTtQQQo_2dddddd4aNKYp9p_B1 HTTP/1.1(200返回码)***********应该是304

我们试图弄清楚的是如何进行更改,以便如果捆绑包没有更改,我们不会重新生成它并在每个请求上发送整个有效负载

任何帮助是极大的赞赏!

谢谢, 多米尼克

4

1 回答 1

0

所以,事实证明问题是我在 chrome 中点击的是 ctrl-f5 而不是 f5。这会强制进行缓存刷新,而不是定期刷新。

当我通过 f5 刷新时,一切都很好。

没问题,继续前进:)

于 2013-03-19T00:22:24.280 回答