为了提高网站性能,我在IIS 7.5中添加了以下http标头。
Expires
:Sun, 29 Mar 2020 00:00:00 GMT
和
Cache-Control
:Public
我在网站的虚拟目录中为images
文件夹添加了这些标头。
当我访问该网站时,我看到该文件夹中的每个图像;那些响应标题是:
Accept-Ranges:bytes
Cache-Control:no-cache, no-store,Public
Content-Length:4445
Content-Type:image/png
Date:Fri, 06 Jun 2014 09:18:36 GMT
ETag:"16874c2af55ecf1:0"
Expires:-1,Sun, 29 Mar 2020 00:00:00 GMT
Last-Modified:Wed, 23 Apr 2014 13:08:48 GMT
max-age:604800
Pragma:no-cache
Server:Microsoft-IIS/7.5
X-Powered-By:ASP.NET
我需要浏览器从其缓存中获取这些图像,而不是再次从服务器请求。我应该如何实现它?
答案 0 :(得分:3)
您的标题显示您添加了新值,但您需要替换现有的
Cache-Control:no-cache, no-store,Public
Expires:-1,Sun, 29 Mar 2020 00:00:00 GMT
no-cache, no-store
代表无缓存,-1
表示内容已过期。
您可以轻松地在根web.config文件中将其设置为
,而不是从代码中执行此操作...
<location path="images">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseExpires"
httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" />
</staticContent>
</system.webServer>
</location>
</configuration>
其中images是目录的名称
或直接在目标目录中添加专用的web.config文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseExpires"
httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" />
</staticContent>
</system.webServer>
</configuration>
您还可以使用cacheControlMode =&#34; UseMaxAge&#34;并设定特定的到期时间
在7天内设置到期的示例
<clientCache cacheControlMode="UseMaxAge"
cacheControlMaxAge="7.00:00:00" />