当我在不到2-3分钟内刷新我的网站时,Firebug会显示这些不错的请求:
1. /core.css 304 Not modified
2. /core.js 304 Not modified
3. /background.jpg 304 Not modified
但是当我在> 3分钟后刷新时,我得到:
1. /core.css 200 OK
2. /core.js 200 OK
3. /background.jpg 304 Not modified
为什么我的CSS和JS文件会再次下载而图像不是?
我正在使用ASP.NET MVC 3,我不使用[OutputCache]
,并且在我的/Content
文件夹中(所有css,js和img文件都存在于子文件夹中)我有这个网站的.config:
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
仅设置HTTP标头Cache-Control: max-age=86400
。所以基本上CSS,JS和图像的处理方式相同,但不知何故CSS和JS不会被缓存更长时间......为什么会这样?
答案 0 :(得分:12)
希望这会有所帮助:http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache
<staticContent>
元素的<clientCache>
元素指定IIS 7及更高版本发送到Web客户端的与缓存相关的HTTP标头,这些标头控制Web客户端和代理服务器如何缓存IIS 7和后来回来......
答案 1 :(得分:2)
IIS或Visual Studio Web服务器会出现这种情况吗?有一段时间在开发时(使用VS Web服务器)察觉到这种行为,但是当在IIS中发布它时,这种情况不再发生了。
答案 2 :(得分:0)