带有可选查询参数的云端缓存
Cloudfront caching with optional query parameters
我正在尝试设置云端缓存我们的图像,这些图像可以接受一个名为 size
的查询参数。请求看起来像这样:
/images/cat?size=large
/images/cat?size=medium
/images/cat?size=small
/images/cat
注意 size
参数是可选的,服务器知道在这种情况下 return 大版本。
问题是将 Cache Key Settings
设置为使用 size
作为键(如屏幕截图所示)对于带有 size
参数的前三个版本来说效果很好。但是,如果该参数不存在(这是最需要缓存的参数),则根本不会发生缓存。
我不确定如何设置才能正确缓存所有内容。我有一个古怪的想法,涉及为 /images/*
设置一个缓存在 size
上的行为,为 /images/*.png
设置另一个不缓存任何参数的行为(2 种行为,因为路径需要独特)。但是这个解决方案感觉不佳。
感谢您的帮助
对于处于相同情况的任何人,这就是我的发现。
我尝试按照上一段中的描述进行两种重叠行为,一种是在 size
上进行缓存,另一种不是。到目前为止,这种方法似乎工作正常。如果我发现任何陷阱,我会编辑。
我正在尝试设置云端缓存我们的图像,这些图像可以接受一个名为 size
的查询参数。请求看起来像这样:
/images/cat?size=large
/images/cat?size=medium
/images/cat?size=small
/images/cat
注意 size
参数是可选的,服务器知道在这种情况下 return 大版本。
问题是将 Cache Key Settings
设置为使用 size
作为键(如屏幕截图所示)对于带有 size
参数的前三个版本来说效果很好。但是,如果该参数不存在(这是最需要缓存的参数),则根本不会发生缓存。
我不确定如何设置才能正确缓存所有内容。我有一个古怪的想法,涉及为 /images/*
设置一个缓存在 size
上的行为,为 /images/*.png
设置另一个不缓存任何参数的行为(2 种行为,因为路径需要独特)。但是这个解决方案感觉不佳。
感谢您的帮助
对于处于相同情况的任何人,这就是我的发现。
我尝试按照上一段中的描述进行两种重叠行为,一种是在 size
上进行缓存,另一种不是。到目前为止,这种方法似乎工作正常。如果我发现任何陷阱,我会编辑。