2012-03-09 53 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" />