Azure CDN添加附注:无

我使用标准Akamai层建立了一个Azure CDN。 我的出身是一个Web应用程序。 我已经在我的web.config中设置了缓存控制标题,如下所示:

<clientCache cacheControlMode="UseMaxAge" cacheControlCustom="public" cacheControlMaxAge="30.00:00:00" />

在我的标记中,我用下面的代码击中了我的图像文件:

<img src="https://xxxx.azureedge.net/Content/Images/Turtle.jpg?v=1.0.0.27987">

当我这样做时,我得到以下响应头文件:

cache-control:public, max-age=2591903 
content-length:2321435 
content-type:image/jpeg 
date:Mon, 03 Apr 2017 19:34:23 GMT 
etag:"2e7a1f1690a9d21:0" 
last-modified:Thu, 30 Mar 2017 19:59:05 GMT 
pragma:no-cache 
server:Microsoft-IIS/8.0 status:200 vary:Accept-Encoding x-powered-by:ASP.NET

注意编译指示:no-cache。 我从没有想过从哪里来。 这绝对不是我的原始响应中加载缓存。 如果我点击原点,则会看到为相同图像发送的以下标题:

Accept-Ranges:bytes
Cache-Control:public,max-age=2592000
Content-Length:2321435
Content-Type:image/jpeg
Date:Mon, 03 Apr 2017 19:41:50 GMT
ETag:"2e7a1f1690a9d21:0"
Last-Modified:Thu, 30 Mar 2017 19:59:05 GMT
Server:Microsoft-IIS/8.0
X-Powered-By:ASP.NET

这意味着,当击中CDN时,不是从http缓存中提供此图像,而是发送ETag,并且我正在浪费HTTP往返。 我假设罪魁祸首是编译指示:发送的no-cache标头,它正在覆盖缓存控制标头。 我的问题是:

  • 为什么Azure CDN添加此附注:服务我的图像时无缓存头?
  • 是编译指示:no-cache是​​我们看到304 / ETag验证而不是从http缓存提供服务的原因吗?
  • 谢谢!

    编辑:我也试着从web.config中删除标签。 我仍然看到一个ETag传输的图像,而不是从浏览器http缓存服务。

    链接地址: http://www.djcxy.com/p/62725.html

    上一篇: Azure CDN adding pragma:no

    下一篇: How to purge the Azure CDN to refresh any cached content?