如何在nginx中为html文件使用HTTP缓存?
我目前针对HTTP内容缓存的nginx配置如下:如何在nginx中为html文件使用HTTP缓存?,html,caching,nginx,web-hosting,http-caching,Html,Caching,Nginx,Web Hosting,Http Caching,我目前针对HTTP内容缓存的nginx配置如下: location ~* \.html$ { expires -1; } location ~* \.(css|js|gif|jpe?g|png)$ { expires 168h; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } 正如您所看到的,我已经禁用了对HTML
location ~* \.html$ {
expires -1;
}
location ~* \.(css|js|gif|jpe?g|png)$ {
expires 168h;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
正如您所看到的,我已经禁用了对HTML文件的缓存,因为它们经常更新。
现在,我想通过使用脚本重命名HTML文件的父目录来启用HTML缓存来更新配置。发件人:
view/*.htmls
到
view/randomString/*.htmls
所以,基本上,我所有的html文件都将被移动到一个随机名称的目录中,这个目录将在每次部署web应用程序时生成。这是正确的方法吗?还是已经有更好的方法来实现这一点 了解HTTP缓存的工作原理。阅读这篇文章的那一部分是个好主意 您可以尝试使用实体标记缓存验证器(或),而不是在每次发布时更改所有URL并破坏人们可能制作的所有书签。您可以为您的html文件创建一个。要让nginx重新生成这些文件,您所要做的就是通过标记所有更改的文件来更改时间戳
如果您运行了一个非常非常繁忙的事情,并且希望避免ETag为检查它们而执行的请求,请使用PS。您可以像其他文件一样设置长过期日期,并通过在URL中添加
?randomstring
来更改URL,就像在HTML文件中解释的那样,因为它们更新得非常频繁
这与问题无关,但是如果您经常更新HTML,您可能应该使用内容管理系统(CMS)相反,频繁更新文本文件并不是使用cms的理由。源代码是一组频繁更新的文本文件,但我没有看到任何人将cms用作开发工具。我忘了提到我使用angular http拦截器来附加随机字符串。因此,它不会更改url。但您的解决方案似乎更简单好的,谢谢。