加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

通过nginx替换指纹文件服务器时,在浏览器中过期资产缓存

发布时间:2020-12-13 21:28:23 所属栏目:Nginx 来源:网络整理
导读:我通过nginx提供单页JavaScript应用程序,当我部署新版本时,我想强制浏览器使其JS缓存无效,并请求/使用可用的最新版本. 因此,例如,当我使用名为my-app-eaea342.js的文件替换服务器文件夹中名为my-app-8e8faf9.js的文件时,我不希望浏览器将my-app-8e8faf9.js从

我通过nginx提供单页JavaScript应用程序,当我部署新版本时,我想强制浏览器使其JS缓存无效,并请求/使用可用的最新版本.

因此,例如,当我使用名为my-app-eaea342.js的文件替换服务器文件夹中名为my-app-8e8faf9.js的文件时,我不希望浏览器将my-app-8e8faf9.js从他们的缓存已经不再了但是当没有新版本可用时,我仍然希望他们从缓存中读取资产.

如何使用nginx配置实现?这是我现有的配置:

server {
  listen 80;

  server_name my.server.com;

  root /u/apps/my_client_production/current;
  index index.html;

  # ~2 seconds is often enough for most folks to parse HTML/CSS and
  # retrieve needed images/icons/frames,connections are cheap in
  # nginx so increasing this is generally safe...
  keepalive_timeout 10;
  client_max_body_size 100M;

  access_log /u/apps/my_client_production/shared/log/nginx.access.log;
  error_log /u/apps/my_client_production/shared/log/nginx.error.log info;

  location / {
    try_files $uri $uri/ =404;

    gzip_static on;
    expires max;
    add_header  Cache-Control public;

  }

  # Error pages
  error_page 500 502 503 504 /500.html;
}
最佳答案
通过更改资源网址来实现缓存无效是一种常规做法.

但是为了工作,您需要您的html文件不被永久缓存,以便浏览器将在这些名称更改时具有一些信息.

所以html和资产的单独位置. Matcher可以不同,具体取决于您如何存储它们,例如:

location / {
  try_files $uri $uri/ =404;
  gzip_static on;
  }

location ^~ /assets/ {
  gzip_static on;
  expires max;
  add_header Cache-Control public;
  }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读