【问题标题】:What to do with nginx cache for HTML files?如何处理 HTML 文件的 nginx 缓存?
【发布时间】:2014-10-28 23:17:32
【问题描述】:

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

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

我在所有HTML 文件上将expires 0; 添加到Nginx,但在我看来,我缺少一个明显的解决方案。

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

}

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

在 Angular 中,我尝试使用 html2js - 它基本上将所有 HTML 文件转换为 JavaScript,然后它会经历与其他文件相同的缓存破坏机制。

但这也迫使用户下载一个大的 JavaScript 文件,这在某种程度上击败了 angular 的使用——它根据需要加载模板,使其非常轻巧和快速。

如何解决HTML缓存问题?

【问题讨论】:

    标签: html caching nginx


    【解决方案1】:

    试试这 2 个几乎相等的变体,将它们放在 location ~ / {} 部分之后:

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

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

    【讨论】:

      猜你喜欢
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 2013-09-09
      • 2017-08-30
      • 2016-09-23
      • 1970-01-01
      相关资源
      最近更新 更多