我已在 AWS amplify 上部署了我的应用程序。我已经在根级别添加了带有缓存标头的 customHttp.yml 文件。但是此标头并未被应用。 即使图像大小不超过 10KB,静态文件夹中的图像也需要很长时间。
customHeaders:
- pattern: '/build/static/media/*.{webp,jpg,jpeg,png,svg,ico}'
headers:
- key: 'Cache-Control'
value: 'public, max-age=31536000, immutable'
- pattern: '/build/images/home/*.{webp,jpg,jpeg,png,svg,ico}'
headers:
- key: 'Cache-Control'
value: 'public, max-age=31536000, immutable'
- pattern: '/build/images/sportsbook/*.{webp,jpg,jpeg,png,svg,ico}'
headers:
- key: 'Cache-Control'
value: 'public, max-age=31536000, immutable'
- pattern: '/build/static/js/*.js'
headers:
- key: 'Cache-Control'
value: 'public, max-age=31536000, immutable'
- pattern: '/build/static/css/*.css'
headers:
- key: 'Cache-Control'
value: 'public, max-age=31536000, immutable'
您是否已通过导航至 AWS Amplify 控制台中的自定义标头设置页面来验证是否正在应用
customHttp.yml
?
max-age
被 s-maxage
覆盖(用于共享缓存);可能在某个地方指定了一个 s-maxage
标头来覆盖您的值。无论如何,s-maxage 通常用于像您这样的边缘缓存场景,所以我建议切换到它。
如果做不到这一点,你如何确定缓存没有满足响应?
Last-Modified
响应标头是否始终对应于请求时间?
此外,Amplify 将
s-maxage
值限制为 1 天;这不是您问题的原因,但值得注意。