Azure Media Player CDN资源cache-control头与客户端缓存配置咨询
关于AMP官方CDN缓存头问题的结论
- 你遇到的amp.azure.net域名下资源未返回cache-control响应头的问题和你的个人配置无关。该域名是微软官方托管的AMP公共CDN节点,所有响应头规则由微软CDN侧统一管控,作为资源调用方你没有权限修改该域名下资源的源响应头,你观察到的现象是当前官方CDN的默认配置行为,和你页面上的AMP初始化、资源引用写法没有关系。
使用amp.azure.net资源时配置客户端缓存的官方推荐方案
- 优先使用带明确版本号的资源引用路径,不要使用
latest这类指向滚动更新版本的别名路径。比如避免引用//amp.azure.net/libs/amp/latest/azuremediaplayer.min.js,而是指定固定版本如//amp.azure.net/libs/amp/2.3.12/azuremediaplayer.min.js。由于固定版本号对应的AMP静态资源(js、css、woff字体)内容是永久不变的,你可以通过两种方式配置缓存:- 在自己的站点服务端为引用这些固定版本资源的页面配置对应的资源缓存提示规则
- 通过前端Service Worker自定义客户端缓存策略,针对固定版本的AMP资源设置最长1年的强缓存周期,不会出现资源版本错配的问题
- 如果你需要完全掌控缓存规则,可以将对应版本的AMP所有静态资源下载后托管到你自己的静态资源服务器或自有CDN上,自主配置cache-control等响应头,该方式是官方明确许可的,仅需要你保留AMP源码内的原有版权声明即可。
- 不推荐通过反向代理篡改amp.azure.net源站响应头的方式追加缓存规则,该方式不符合公共CDN使用规范,还可能因为官方CDN节点调度变动导致服务异常。
内容的提问来源于stack exchange,提问作者Thomas Woelfer
相关产品推荐
相关产品推荐

