2011-06-26 49 views
19

我想將總是最新的網站內容呈現給用戶,但也要快速加載。通過研究,我發現有人建議使用緩存來加速加載。HTML - 高速緩存控制最大年齡

那麼我需要在我的網站上添加什麼內容才能在3天后「覆蓋」緩存以顯示最新內容?

+1

你使用wordpress嗎? Drupal的?你有數據庫嗎?高速緩存不像你認爲的那樣乾淨和乾燥...... – Trey

+0

對不起。我正在使用一個沒有CMS的簡單PHP網站。 – Uli

回答

11

有多種方法可以做到這一點 - 但您需要考慮到您需要緩存的內容以及不需要的內容。最大的速度提升可能來自確保您的資產(css,images,javascript)被緩存,而不是html本身。然後你需要考慮各種因素(這些資產多久改變一次,你將如何強迫用戶下載新版本的文件來改變它?)。

通常作爲網站發佈過程的一部分,新文件(更新的文件)被賦予一個新文件名以強制用戶瀏覽器重新下載該文件,但這只是一種方法。

您應該看看apache mod_expire以及使用.htaccess文件設置資產到期時間的功能。

http://www.google.com/?q=apache+cache+control+htaccess#q=apache+cache+control+htaccess

+0

我的理解是否正確,我只需要將此代碼添加到我的服務器.htaccess文件以允許緩存文件3天? '#3 DAYS 標題集Cache-Control」max-age = 259200,proxy-revalidate「 '所有得到重新加載,對嗎?來源:http://www.askapache.com/htaccess/apache-speed-cache-control.html – Uli

+0

答案假設我使用Apache作爲服務器,如果我使用Ruby應用程序?這不起作用 – Joseph

+0

這裏是一篇博文,其中詳細解釋瞭如何在html和您最喜愛的編程語言中設置緩存標頭http://docs.fastly.com/guides/22951283/26628787 – Joseph

0

由於每YSlow recommendations你可以配置你的Web服務器的ExpiresCache-Control HTTP頭添加到這將導致用戶代理緩存指定的持續時間響應的響應。

1

如所提到的Expires和Cache-Control頭通常是摻入約信息生存期信息的最好方式。

由於客戶對解釋這些具有緩存功能的信息代理不太可靠,如squid,清漆或此類解決方案是大多數人的首選。您還需要考慮是否僅緩存靜態內容(如圖像,樣式表,...)或動態生成的內容。

15

Cache-Control標頭用於HTTP 1.1中以控制高速緩存的行爲。 max-age指令用於指定(以秒爲單位)內容的最大使用期限(即內容在某段時間內不會更改)。所以,如果你知道你的內容將不會3天改變,你希望你的服務器中添加以下HTTP標頭:

Cache-Control: max-age=259200 

(259200 = 60 X60米X 24小時X 3D)

要做到這一點在PHP中,這一行添加到您的輸出:

header('Cache-Control: max-age=259200'); 

這裏閱讀的頭功能的詳細信息:

+1

對於IIS,您可以將其設置爲使用'[ - ] [d。] hh:mm:ss [.ff]'格式的靜態內容(保持動態內容動態)在web.config中,它應該放在'

相關問題