我们遇到的问题是我们已经定义了两个包含.less文件的包,我们希望一次使用一个包,或者根据某些任意条件使用另一个包(想象一下这些包是几乎相同,但可能有轻微的外观差异)。
假设我们在_layout.cshtml中有以下内容:
@{
var bundleName="~/Content/LessBundle";
if (DateTime.Now.Minute % 2 == 1)
{
bundleName="~/Content/LessBundle_v2";
}
@Styles.Render(bundleName);
}
我们在Fiddler中看到的意外行为是,使用上面的代码,每次在浏览器中刷新页面时,都会发生GET请求并返回200,但会生成相同的包ID。
为了进一步证明,这里是我们在Fiddler输出中看到的(从最旧到最新的请求)
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
我们想要弄清楚的是如何进行更改,以便如果捆绑包没有更改,我们不会重新生成它并在每个请求上发送整个有效负载
非常感谢任何帮助!
谢谢, 多米尼克
答案 0 :(得分:0)
所以,事实证明问题是我在chrome中使用ctrl-f5而不是f5。这会强制执行缓存刷新,而不是进行常规刷新。
当我通过f5刷新时,一切都很好。
没有问题,继续前进:)