当前位置: 首页 > 知识库问答 >
问题:

使用Nginx对文件强制缓存

曹嘉许
2023-03-14

我正在尝试强制缓存这类文件:css、woff、otf、js、jpg、jpeg、gif、png、ico、cur、gz、svg、svgz、mp3、mp4、ogg、ogv和没有扩展名的文件。

proxy_cache_path /tmp/test keys_zone=test:10m loader_files=300 max_size=4g;

location ~* (^/.*(css|woff|otf|js|jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp3|mp4|ogg|ogv)$|^/web/image.*) {
          proxy_cache test;

          proxy_cache_methods GET HEAD;
          proxy_cache_lock on;

          proxy_ignore_headers Set-Cookie;
          proxy_ignore_headers X-Accel-Expires;
          proxy_ignore_headers Expires;
          proxy_ignore_headers Cache-Control;

          add_header Pragma "public";
          add_header Cache-Control "public";
          add_header X-Cache $upstream_cache_status;
          access_log off;
          expires 12h;

          proxy_pass http://test;
  }

获取:

  • 接受:text/css,/;q=0.1
  • 接受编码:gzip,deflate,br
  • 接受语言:es-ES,ES;q=0.8,EN-US;q=0.5,EN;q=0.3
  • 缓存-控制:无缓存
  • 连接:保持活动状态
  • DNT:1
  • pragma:无缓存

Nginx:

    null

共有1个答案

拓拔野
2023-03-14

尝试添加

proxy_cache_valid 200 1d; 

将所有与您的位置匹配且http状态为200的文件保留在缓存中1天

 类似资料:
  • 在服务器迁移过程中,一个新的nginx配置缺少缓存控制指令。因此,我们最终得到了缓存的,这对我们的SPA非常不利,如果我们部署新代码,它将不再刷新。我们需要index.html不被缓存。 这是我们的(不好的)nginx配置,几天来一直在线: 我们修复了我们的配置: 问题 过去几天内访问过我们网页的客户端缓存了一个旧索引。html。我们如何强制他们的浏览器删除缓存的?

  • 问题内容: 我的服务器上有一个CSV文件。如果用户单击链接,则应下载该链接,但会在我的浏览器窗口中打开。 我的代码如下 这是我所有开发工作都在上面的普通Web服务器。 我尝试了类似的东西: 现在我文件的内容: 现在我的问题是正在下载,而不是我的CSV文件。它创建一个新文件。 问题答案: .htaccess解决方案 要强行下载服务器上的所有CSV文件,请添加.htaccess文件: PHP解决方案

  • 问题内容: 我希望用户能够下载服务器上的某些文件,但是当我尝试使用Internet上的许多此类示例中的任何一个时,对我来说似乎没有任何作用。我试过这样的代码: 我什至尝试使用我能找到的最基本的示例,如下所示: 测试完此功能后,我删除了所有其他代码,并使用仅包含此代码的空文件来删除由外部源创建的任何错误。 当我在控制台中查看文件时,将使用正确的标题发送文件,即 但是不会显示保存对话框。 我还尝试使用

  • 问题内容: 我有图像列表,我希望每个图像都有一个“下载”链接,以便用户可以下载图像。 所以有人可以指导我如何为php中的任何文件提供下载链接吗? 编辑 我希望在单击下载链接时显示一个下载面板,但我不想导航到要在浏览器中显示的图像 问题答案: 如果要强制下载,可以使用如下所示的内容: 如果仅使用常规链接链接到此脚本,则将下载文件。 顺便说一句,上面的代码段需要在页面的开头执行(在没有任何标题或HTM

  • 问题内容: 当我使用fputcsv将行写出到打开的文件句柄时,PHP会将封闭字符添加到它认为需要的任何列中,而其他列将不包含任何封闭物。 例如,您可能会得到这样的一行 除了在每个字段的末尾添加虚假空格之外,是否有任何方法可以强制fputcsv始终将列包含在外壳中(默认为“”)? 问题答案: 不,fputcsv()仅在以下情况下封闭该字段 没有“始终封闭”选项。

  • 问题内容: 因为我以前使用过jQuery的AjAX方法,所以我对XMLHttpRequests较新。但是,我需要在网络工作者中工作,现在我必须使用经典的XMLHttpRequest来解决性能问题。 我正在尝试从jquery 重建-property。如果应该禁用缓存,请添加以下内容: 但是,如果我想强制缓存(不是阻止),应该设置哪个标头? 问题答案: 您可以设置各种标头来鼓励缓存,但是它们(包括您使