我正在使用静态网站生成器开发博客。为了获得更好的页面速度,我在我的nginx配置文件中启用了图像,javascript和css缓存:
location ~* \.(?:ico|gif|jpe?g|png)$ {
expires 120d;
}
location ~* \.(?:css|js)$ {
expires 7d;
}
我的网页<head>
区域没有任何缓存指令。
现在,当我发布新文章(这意味着我在本地生成文件并在服务器上scp
)并访问我的网站时,新文章未显示!它只会出现在我&#34; hard refresh&#34;该网站。
这绝对不是理想的行为,因为人们可能会来到网站并且不会看到最新的文章。
答案 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;
}