为了提高网站性能,我添加以下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
我需要浏览器是高速缓存,而不是从服务器再次请求,采取这些图像。 我应该如何实现呢?
你的头表示你添加一个新值,但你需要替换现有的
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>
如果照片是你的目录的名称
或者直接在目标目录中添加专用的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 =“UseMaxAge”,并设置过期的具体时间
实施例设置到期7天
<clientCache cacheControlMode="UseMaxAge"
cacheControlMaxAge="7.00:00:00" />
更多http://msdn.microsoft.com/en-us/library/ms689443.aspx