2013-08-30 40 views
3

我想爲我的WordPress服務器啓用CloudFlare,但我仍然非常頻繁地進行更改。 CloudFlare說,它緩存靜態文件(javascript,css,圖像等),所以我假設如果我對這些文件進行了更改並將它們保存在我的服務器上,它們就不會在它們的顯示上發生變化(至少對於而)。CloudFlare或CDN如何工作,我可以強制他們獲取我更新的靜態內容嗎?

如果我對這些文件進行了更改,他們最終會傳播到他們的服務器嗎?這需要多長時間?

我一直在做我的css文件的src從「my.css」更改爲「my.css?v = 1.1」和「my.css?v = 1.2」等等的小技巧。所以它會強制你的瀏覽器獲得新版本的文件,因爲它會欺騙它,認爲它是一個新文件。這是否也適用於CloudFlare,還是繞過這個?

謝謝。

回答

6

您有幾個選項來管理資產緩存的時間。

如果你去域>的CloudFlare設置> Perfornamce設置>最低到期TTL
可以2小時,1年期間進行選擇。這是一個網站全球設置。

如果您轉到域>頁面規則您可以自定義緩存和其他網站細分。所以這可能是你的CSS和JS目錄,或者它可能是單個文件。

無論您使用,如果你去 域> CloudFlare設置>清除緩存,可以清除個人資產,或整個網站的緩存

什麼設置,你仍然可以使用你的CSS版本的方法。需要注意的一個細節是,如果您使用my.css?v = 1.1,並且您希望cloudflare將其緩存以提高性能,則需要轉至域> cloudFlare設置> Perfornamce設置>緩存級別,並將其設置爲激進。

如果您未訪問者將從您的服務器發送CSS文件,而不是CloudFlare。

希望這會有所幫助!

+0

非常有幫助。你是男人!非常感謝 – jas7457

0

CloudFlare有兩個配置緩存的選項。默認配置在他們的控制面板中。在這裏,您可以設置諸如「緩存一切」之類的選項並控制最大使用時間。

但CloudFlare也尊重您的內容上的標題。我更喜歡使用這些因爲它允許我最細粒度的控制。問題標題是Cache-Control。如果此標題不存在,則將使用控制面板選項。

如果您發送標頭Cache-Control: no-cache,請求將始終檢查您的原始服務器以查看內容是否是最新的。請注意,這會導致每個請求都會觸發您的來源。儘管很多時候您可以提供304 NOT MODIFIED響應,但這會減慢響應速度,因此您可能會節省一些帶寬。

如果發送標題Cache-Control: max-age=3600 CloudFlare將在檢查源服務器之前,在請求後最多爲max-age秒(本例中爲1小時)提供緩存內容。

這個頭文件有很多選項,但這些都是基礎知識。

我一直在做我的css文件的src從「my.css」更改爲「my.css?v = 1.1」和「my.css?v = 1.2」等等的小技巧。我進行了更改,以便強制您的瀏覽器獲取該文件的較新版本,因爲它會欺騙它,認爲它是新文件。這是否也適用於CloudFlare,還是繞過這個?

這仍然有效。 HTTP將每個URL視爲不同的實體,因此必須提取新的URL。

相關問題