Jekyll Bootstrap based blog - Expire headers?
Asked Answered
M

3

30

I have a Jekyll bootstrap based blog hosted on Github pages.

My problem is: Every time I change something on my web page, I have to forcefully reload the page (CTRL + R) to see the changes.

Jekyll or my browser does not seem to realize that there is a newer version available to send out.

How can I configure Jekyll to better handle this?

Morez answered 9/3, 2012 at 17:7 Comment(5)
Chances are that Github Pages is sending out aggressive caching headers, telling the browser not to check for an updated version of the resource until a certain time.Malt
So there is no possibility to circumvent this with Github Pages?Morez
You'll need to ask them about their caching practices.Malt
Hey @SebastianHoitz did you solve this? I am facing a similar issue.Anemophilous
I've also asked them about this, but to no avail.Depolarize
R
6

There are a couple of jekyl plugins to handle assets cache busting.

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

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

I tried jekyll-assets and it's pretty nice as it manage all kind of assets with an md5 version number.

Before I use to append a string to my css links at compilation time.

<link href="{{ ASSET_PATH }}/css/global.css?{{ site.time | date:'%Y%m%d%U%H%N%S' }}" rel="stylesheet">
Roomer answered 6/1, 2013 at 13:48 Comment(2)
Question is not about assets, it's about html cache.Tolmach
yop but this plugin add cache busting strings, that's why I answered here. my bad :)Roomer
S
3

You can add these meta tags to your html to disable browser caching for your pages.

<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
Shaquana answered 9/1, 2013 at 12:2 Comment(0)
H
-1

If you want to bypass the cache on static resources you could change the name of the file each time you push it. This will make the browser get the new resource since it won't know anything about a file with a new name.

For example:

Old file name: project.css New file name: projectv01.css

Or whatever you would like.

Hylan answered 27/11, 2012 at 20:58 Comment(1)
The referring page would have to be renamed as well which would break the user experience completely. Instead of index.html it would have to be index01.html :). Otherwise the cache will serve the index.html that points to project.css rather than projectv01.css. Using javascript to add ?cache=random to every content url is A solution.. but a horrible bad solution.Zemstvo

© 2022 - 2024 — McMap. All rights reserved.