2012-03-09 76 views
29

我有一個在Github頁面上託管的基於Jekyll bootstrap的博客。基於Jekyll Bootstrap的博客 - 過期頭?

我的問題是:每當我改變我的網頁上的東西,我必須強制重新加載頁面(CTRL + R)來查看更改。

Jekyll或我的瀏覽器似乎並沒有意識到有更新的版本可以發送出去。

如何配置Jekyll以更好地處理此問題?

+2

很可能Github Pages發出積極的緩存標題,告訴瀏覽器在特定時間之前不檢查資源的更新版本。 – Charles 2012-03-09 17:19:16

+0

那麼有沒有可能通過Github Pages規避這種情況? – 2012-03-09 17:22:10

+0

您需要向他們詢問他們的緩存操作。 – Charles 2012-03-10 00:44:36

回答

-1

如果您想繞過靜態資源上的緩存,則每次推送時都可以更改文件的名稱。這將使瀏覽器獲得新的資源,因爲它不會知道任何有關新文件名的文件。

例如:

舊文件名稱:project.css 新的文件名:projectv01.css

或任何你想。

+1

引用頁面也必須重新命名,這將徹底打破用戶體驗。而不是index.html它必須是index01.html :)。否則,緩存將提供指向project.css而不是projectv01.css的index.html。使用javascript添加?緩存=隨機到每個內容的網址是一個解決方案..但一個可怕的壞解決方案。 – whardier 2012-12-09 22:02:33

5

有幾個jekyl插件來處理資產緩存破壞。

https://github.com/ixti/jekyll-assets/

http://matthodan.com/2012/11/22/jekyll-asset-pipeline.html

我試圖哲基爾資產,因爲它管理所有類型的資產,採用MD5版本號是相當不錯的。

在編譯時用於在我的css鏈接中追加一個字符串。

<link href="{{ ASSET_PATH }}/css/global.css?{{ site.time | date:'%Y%m%d%U%H%N%S' }}" rel="stylesheet"> 
+0

問題不是關於資產,而是關於html緩存。 – 2013-01-09 12:03:48

+0

喲,但這個插件添加緩存破壞字符串,這就是爲什麼我在這裏回答。我的錯 :) – 2013-01-09 16:10:57

3

您可以將這些元標記添加到您的html以禁用瀏覽器緩存您的網頁。

<meta http-equiv="Pragma" content="no-cache" /> 
<meta http-equiv="Expires" content="-1" />