如何处理HTML文件的nginx缓存?

时间:2014-09-04 09:13:13

标签: html caching nginx

我一直在讨论项目中HTML文件的缓存问题。

我有静态资源(图像,脚本,css等)的缓存失效机制,但所有这些解决方案似乎都无法处理HTML缓存问题。

我在所有expires 0;文件上添加了NginxHTML,但在我看来,我错过了一个明显的解决方案。

location ~ / {
    if ( $document_uri ~* \.(html)$ ){
         expires 0;
    }
    root /var/www/my-website;

}

看起来很丑陋(!)此外,if is evil并且我确信世界上所有网站都需要处理这个问题,因此必须有更好的方法来解决这个问题。

在角度我尝试使用html2js - 它基本上将所有HTML文件转换为JavaScript,然后它经历与其余文件相同的缓存初始化机制。

但这也迫使用户下载一个大胖的JavaScript文件,它在某种程度上失败了角度的使用 - 根据需要加载模板,使其非常轻快。

如何解决HTML缓存问题?

1 个答案:

答案 0 :(得分:1)

尝试这两个几乎相同的变体,将它们放在位置〜/ {}部分之后:

location ~ \.html$ {
  add_header Cache-Control "no-cache, no-store";
...
}

location ~ \.html$ {
  expires -1;
...
}