在浏览器中缓存 Azure-served 个图像

Caching Azure-served images in the browser

我有大量图像以 blob 形式存储在 Azure 容器中。

我正在尝试让浏览器 (Chrome) 缓存这些图像以节省带宽。我读过很多帖子说这可以通过设置 Cache-Control 响应 header 来实现。我正在使用 Microsoft Azure 存储资源管理器来修改这些 headers,例如:

public, max-age=7776000

加载此图片 (https://XXXXXXXX.blob.core.windows.net/XXXXXXXX/Themes/summer.jpg) 时,这是我使用 Google Chrome 的开发人员工具看到的:

这对图像的缓存没有任何影响。我尝试了允许的 CacheControl 属性的许多不同排列,但我根本看不到任何缓存。状态始终为 200,但我期望缓存命中 304。这是正确的吗?

我提供的任何 CacheControl 字符串总是显示在 Chrome 的结果中;它似乎对缓存方面没有任何影响。我试过 publicprivatemax-ages-maxagemust-revalidate 的变体。为了完整起见,no-cacheno-store。没有观察到差异。

我需要 900ms+ 加载上图。但是,在本地保存时,同一张图片需要 19ms。我希望如果浏览器正在缓存图像,那么它的时间将等于当地时间。

其他帖子建议使用 Azure CDN。但是,我不想走这条路,因为使用这些图片的网站不需要它。

我是否缺少 Azure 中允许缓存的设置?直接在浏览器或网页中加载图像也没有区别。

谁能提供帮助?如果需要任何其他信息,请告诉我。

CacheControl 设置应该生效。

使用 chrome 时,请确保您没有 select 选项 "disable-cache"。

在 chrome 中为 CacheControl 设置 max-age=xx 时,我可以看到预期的行为。