提供本地json文件:如何缓存

时间:2011-12-20 09:32:37

标签: php javascript json zip

我有一些本地文件,它们充满了纯粹的json文本。

我有一个PHP脚本为他们服务。我使用php,因为它允许我以压缩格式提供它们,具体取决于请求中指定的功能。这更精简。

php通过获取url参数,获取文件并在流上转储其(压缩)输出来完成此操作。

不过,现在我想知道如何缓存这些文件。如何在php代码中指定文件不会更改,以便客户端可以使用该响应的缓存版本?

或者是否有以压缩方式静态提供这些文件的选项,因此静态Web服务器执行缓存? (我正在使用httpd)。

2 个答案:

答案 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");