浏览器缓存HTML

时间:2017-04-21 19:37:13

标签: html caching nginx

我正在使用静态网站生成器开发博客。为了获得更好的页面速度,我在我的nginx配置文件中启用了图像,javascript和css缓存:

location ~* \.(?:ico|gif|jpe?g|png)$ {
    expires 120d;
}

location ~* \.(?:css|js)$ {
    expires 7d;
}

我的网页<head>区域没有任何缓存指令。

现在,当我发布新文章(这意味着我在本地生成文件并在服务器上scp)并访问我的网站时,新文章未显示!它只会出现在我&#34; hard refresh&#34;该网站。

这绝对不是理想的行为,因为人们可能会来到网站并且不会看到最新的文章。

  • 除非另有说明,浏览器是否会缓存html?
  • 我该怎么做才能阻止html缓存?

2 个答案:

答案 0 :(得分:1)

向资源添加唯一的查询字符串,la:

template <class T, class... Bindings>
struct WithBindings<T, pack<Bindings...>>
: MakeLeftMember <T, Bindings>...
, MakeRightMember<T, Bindings>... { };

如果您有动态服务器端脚本语言/设置,您通常可以“动态”生成这些查询字符串。

对于HTML本身,您需要将服务器配置为使用No-Cache指令提供HTML。在您的HTML中:

<img alt='something' src='/images/foo.jpg?20170421'>

答案 1 :(得分:0)

尽管Kevin_Kinsey的解决方案可行,但我找到了一个能够很好地完成工作的解决方案:

我将此添加到我的nginx配置中:

location ~* \.(?:manifest|appcache|html?|xml|json)$ {
    expires -1;
}