Jekyll page cache control

2018-08-31  本文已影响0人  _Derek_H_

Currently I use Jekyll to generate static site and host it on my GitHub pages. After I first setup the basic environment of Jekyll and pushed local changes to the remote master branch, I thought everything was fine and sitted back to enjoy this convinence brought by Jekyll. However, after I added a new blog post and push changes to master branch, my GitHub pages didn't get updated. There was only the initial "Hello world" post I added before.

Automatic Regeneration of Jekyll

During the development process, I use jekyll serve to serve a local site. Whenever I modifies a file, the content of the site will be regenerated by Jekyll automatically. This is called automatic regeneration, something like hot reloading.

Solution

However, when in production environment(hosted on GitHug pages), the changes may not take effect due to browser caching, squid proxy server caching, etc. After checking this issue, I decided to added the following lines at the front of home.html:

<meta http-equiv="CACHE-CONTROL" content="NO-CACHE">

Still Confused

First of all, I only added the line of code in home.html, hoping it would only disable caching for the home page. However, I used Chrome DevTools to inspect the network response and found that caching is disabled for every page of my GitHub pages. It is more strange that when I tried after a while, I found that every page was cached! The responses of every page came with a header: cache-control: max-age=600.

I also tried another way: Custom WEBrick Headers. I added the following code into the file _config.yml:

webrick:
  headers:
    Cache-Control: no-cache

However, it seemed not working. Such frustration! Looking forward to a final solution...

上一篇下一篇

猜你喜欢

热点阅读