缓存CSS和JS文件

时间:2010-09-05 02:18:25

标签: asp.net-mvc caching

当我在不到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不会被缓存更长时间......为什么会这样?

3 个答案:

答案 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)

这可能是Firefox描述的here中的错误吗?

您可以通过在另一个浏览器中打开相同的页面来测试这一点,并使用Fiddler或其他工具检查加载的内容。