我需要将pdf文档的缓存持续时间设置为1小时。因此,每隔一小时后,PDF就会刷新。我通过互联网发现我们可以使用缓存控制 - 最大年龄标题,如下所示 -
Cache-Control: max-age=3600
这样它就会告诉cloudfront将PDF保存在缓存中3600秒(1小时)。
但我不确定在哪里放这个代码。我需要把它放在调度员手中吗?如果有,怎么样?任何人都可以提供相同的代码片段吗?
此外,我们已经包含了" expires.rules"调度程序中的文件具有以下代码 -
ExpiresActive on
ExpiresDefault "access plus 1 month"
Header append Cache-Control "public"
Header add X-ServiceProvider "Test"
#PDF
ExpiresByType application/pdf "access plus 1 hour"
它是否与max-age标题做同样的事情?
如果有人可以解释这一点,那将会非常有用。
谢谢!
答案 0 :(得分:2)
标准方法是在Apaches VirutalHost定义中设置缓存头。通常,设置因文件类型和路径而异。另外,请确保您区分作者和出版商。
以下是一些例子
# Cache JS+CSS with MD5 Hash for 30 days
SetEnvIf Request_URI "^.*(\.min)?\.[a-f0-9]{25,32}\.(js|css)$" immutable_resource=true
Header set Cache-Control "public, max-age=2592000" env=immutable_resource
# Cache Images for 30 days
SetEnvIf Request_URI "^/(etc|content)/.*\.(svg|png|gif|jpeg|jpg)$" image_resource=true
Header set Cache-Control "public, max-age=2592000" env=image_resource
# Cache Fonts for 30 days
SetEnvIf Request_URI "^/etc/.*\.(eot|ttf|woff|woff2)$" font_resource=true
Header set Cache-Control "public, max-age=2592000" env=font_resource
# Cache HTML documents for 2 hours (in this example everything is served with /content/...)
SetEnvIf Request_URI "^/content/myproject/.*\.html$" html_document=true
# Treat vanity URLs as HTML documents too
SetEnvIf Request_URI "^/[A-Za-z0-9]+(\.html)?$" html_document=true
Header set Cache-Control "public, max-age=7200" env=html_document