我们遇到的问题是我们已经定义了两个包含 .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
我们试图弄清楚的是如何进行更改,以便如果捆绑包没有更改,我们不会重新生成它并在每个请求上发送整个有效负载
任何帮助是极大的赞赏!
谢谢, 多米尼克