2011-12-20 45 views
2

我有一些本地文件,它們充滿純json文本。服務本地json文件:如何緩存

我有一個PHP腳本,爲他們服務。我使用php是因爲它允許我以壓縮格式提供它們,具體取決於請求中指定的功能。這非常精簡。

php通過獲取URL參數,獲取文件以及在流上轉儲其(壓縮)輸出來實現此目的。

不過,現在我想知道如何緩存這些文件。我如何在php代碼中指定該文件不會發生變化,以便客戶端可以使用該響應的緩存版本?

或者是否有一個選項可以靜態地以壓縮方式提供這些文件,以便靜態Web服務器執行緩存? (我使用的是httpd)。

回答

2

的Apache 1.3用途MOD_GZIP。你可以壓縮你的內容,而不需要根據請求類型使用php腳本。在你的Apache配置使用下面的行放氣/ gzip的靜態內容:

AddOutputFilterByType DEFLATE application/javascript 

您還可以添加不遠的將來到期的使用Apache靜態內容頭。你不需要使用PHP腳本。該行添加到您的Apache配置靜態內容:

ExpiresActive On 
ExpiresDefault "access plus 4 hours" 
ExpiresByType application/javascript "access plus 1 year" 

你也可以在你的靜態內容目錄

1

您可以使用過期頭,並使用一個遙遠的未來日期:同時阿帕奇2.x使用mod_deflate模塊

<?php 
header("Expires: Fri, 01 Jan 2020 00:00:00 GMT"); 
+0

我接受伊爾凡的答案,因爲它忽略了PHP的水平將其添加到.htaccess文件。但是,當你f.i時,你的答案會更好。不要控制機器上的Apache配置。不過,我正在考慮使用該文件的最後修改日期。 – buddhabrot 2011-12-20 10:12:14

+0

好,夠公平:) – cenanozen 2011-12-20 10:36:05