在浏览器中缓存 Azure 服务的图像

问题描述 投票:1回答:1

我在 Azure 容器中存储了大量的图像,这些图像以 blobs 的形式存储。

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

public, max-age=7776000

Microsoft Azure Storage Explorer

当加载这张图片时 (https:/XXXXXXXX.blob.core.windows.netXXXXXXXXThemessummer.jpg。)这是我使用谷歌浏览器的开发者工具看到的。

Dev Tools

这对图像的缓存没有任何影响。我已经尝试了许多不同的组合,允许的 CacheControl 属性,但我根本没有看到任何缓存。状态始终是 200但我期待的是 304 为缓存命中。这样做对吗?

无论哪种 CacheControl 我提供的字符串总是显示在Chrome的结果中;只是看起来对缓存方面没有任何区别。我已经尝试了不同的 public, private, max-age, s-maxage, must-revalidate. 而只是为了完整。no-cacheno-store. 没有观察到差异。

上图为 900毫秒以上 为我加载。然而,当保存在本地时,同样的图像需要 19ms. 我希望如果浏览器在缓存图片,那么它的时间就会与当地时间相当。

其他帖子表明,一个 Azure CDN 被使用。但是,我不想走这条路,因为使用这些图片的网站不需要这样。

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

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

azure browser-cache azure-blob-storage response-headers
1个回答
2
投票

浏览器 CacheControl 设置应该生效。

当使用chrome时,请确保你没有选择 "禁用缓存 "选项。

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.