我有一些本地文件,它们充满了纯粹的json文本。
我有一个PHP脚本为他们服务。我使用php,因为它允许我以压缩格式提供它们,具体取决于请求中指定的功能。这更精简。
php通过获取url参数,获取文件并在流上转储其(压缩)输出来完成此操作。
不过,现在我想知道如何缓存这些文件。如何在php代码中指定文件不会更改,以便客户端可以使用该响应的缓存版本?
或者是否有以压缩方式静态提供这些文件的选项,因此静态Web服务器执行缓存? (我正在使用httpd)。
答案 0 :(得分:2)
Apache 1.3使用mod_gzip而Apache 2.x使用mod_deflate。您可以在不使用PHP脚本的情况下根据请求类型压缩内容。在apache配置中使用以下行来缩小/ gzip静态内容:
AddOutputFilterByType DEFLATE application/javascript
您还可以使用apache为静态内容添加远期未来的过期标头。您不需要使用php脚本。将此行添加到apache配置中以获取静态内容:
ExpiresActive On
ExpiresDefault "access plus 4 hours"
ExpiresByType application/javascript "access plus 1 year"
您还可以将其添加到静态内容目录中的.htaccess文件
答案 1 :(得分:1)
您可以使用expires标头并使用遥远的未来日期:
<?php
header("Expires: Fri, 01 Jan 2020 00:00:00 GMT");