【问题标题】:github page blog from jekyll needs force reload to show changes with postsjekyll 的 github 页面博客需要强制重新加载以显示帖子的更改
【发布时间】:2015-08-25 20:12:44
【问题描述】:

我正在使用 github 页面学习 jekyll。当我创建一个新帖子(无论如何 - 在本地并通过 github 页面提交到 github 或在线)时,我需要强制重新加载(ctrl+r)我的页面以查看更改。正常吗?

我的存储库网址是here

【问题讨论】:

    标签: jekyll reload github-pages


    【解决方案1】:

    由于 Github 页面内容具有 http 响应标头,例如 Cache-Control:max-age=600Expires:Wed, 10 Jun 2015 16:30:25 GMT(十分钟后的日期),避免页面缓存的唯一方法是将浏览器设置为不缓存。

    如果您仔细阅读 this answer about http-equiv meta(阅读 HTML 元标记与 HTTP 响应标头段落),您会明白,在您的情况下,http-equiv 元是无用的.

    这个缓存与 Jekyll 无关,而是与 github 页面服务器设置有关。个人博客上的 10 分钟缓存并没有那么大。普通用户不需要每 30 秒刷新一次。

    作为开发人员,您不应该在生产服务器上进行开发,而是在开发服务器上进行开发,在那里您可以专门设置您的服务器。

    【讨论】:

    • 我已将这些元行添加到我的 head.html 中,但它不起作用。当用户必须重新加载页面时,使用 jekyll 写博客有什么意义?
    【解决方案2】:

    这只是浏览器在做他们的事情。如果您使用 published: false Front Matter 处理草稿,那么您可以在帖子布局的 <head> 部分中使用以下 sn-p 有条件地禁用缓存:

    <% if page.published != true %>
    <meta http-equiv="cache-control" content="max-age=0" />
    <meta http-equiv="cache-control" content="no-cache" />
    <meta http-equiv="expires" content="0" />
    <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
    <meta http-equiv="pragma" content="no-cache" />
    <% endif %>
    

    在您正在进行的工作的顶部:

    ---
    layout: post
    title: My New Article
    published: false
    ---
    

    当您想真正发布时,只需删除 published: false YAML 或将其设置为 true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 2015-07-01
      • 1970-01-01
      相关资源
      最近更新 更多