React 前端 Nginx 缓存配置

article/2025/5/6 17:54:46

React 前端 Nginx 缓存配置

最新开发钉钉微应用,上线后发现 2 个问题:

1.每次更新后,需要用户手动刷新获取最新的 HTML 和最新的 js,经常被客户吐槽为什么 bug 还没改,其实早已经改了,客户手机上跑的还是旧版。

2.不设置缓存策略的情况下,无论本地是否有缓存,华为手机上竟然是每次重新请求 js、css,每次打开很慢,体验极差。

为了解决这个问题,将 HTML 文件的缓存策略设置为协商缓存,也就是每次都会询问服务器本地是否最新,如果最新,服务器返回 304 而不传输文件,本地加载缓存文件;如果本地文件非最新,服务器就会返回最新文件,本地展示最新文件并更新本地缓存。浏览器询问本地是否最新用到了 ETag 和 Last-Modified。

ETag 由 Nginx 生成,生成规则为:

文件最后修改时间 16 进制-文件长度 16 进制。例:ETag: “59e72c84-2404”
文件长度

10进制为->9220
转为16进制->2404

文件最后修改时间:

标准日期格式->Sat, 21 Oct 2017 09:14:34 GMT
转为秒->1508322436
转为16进制->59e72c84

由此可见,只要更新了 html 文件,浏览器一定会重新加载 HTML,不会出现更新之后,用户跑的还是旧版的问题,解决问题 1。

由于华为手机默认不使用缓存,并且为了节省带宽,提高用户加载速度,js、css 以及常用的静态资源应该强制使用缓存。由于 react 每次打包后,只要代码更改了,js 和 css 文件名一定会变化,所以也不用担心由于强缓存导致浏览器运行旧版代码的问题,这样就解决了第二个问题。

以下是设置 HTML 文件协商缓存,js、css 强缓存的 Nginx 配置

location /test/ {...#其他配置...if ($request_uri ~* .*[.](js|css|map|jpg|png|svg|ico)$) {add_header Cache-Control "public, max-age=2592000";#非html缓存1个月}if ($request_filename ~* ^.*[.](html|htm)$) {add_header Cache-Control "public, no-cache";#html文件协商缓存,也就是每次都询问服务器,浏览器本地是是否是最新的,是最新的就直接用,非最新的服务器就会返回最新}# try_files $uri $uri/ /index.html;
}

附上浏览器缓存规则:

参考:
https://juejin.cn/post/6844903763665240072


http://chatgpt.dhexx.cn/article/Y7wy76qb.shtml

相关文章

nginx缓存设置(expires)

一.expires功能说明 nginx缓存的设置可以提高网站性能,对于网站的图片,尤其是新闻网站,图片一旦发布,改动的可能是非常小的,为了减小对服务器请求的压力,提高用户浏览速度,我们可以通过设置ngin…

nginx缓存配置及开启gzip压缩

一:nginx缓存配置 在前一篇文章,我们理解过http缓存相关的知识点, 请看这篇文章. 今天我们来学习下使用nginx服务来配置缓存的相关的知识。 nginx配置缓存的优点:可以在一定程度上,减少服务器的处理请求压力。比如对一些图片&am…

nginx配置浏览器缓存(强缓存、协商缓存、无缓存)

🏆nginx下载安装及使用 💛nginx下载安装 下载地址:点击下载nginx 根据系统选择要下载的安装包,这里最好选择稳定版(stable version)。 下载好后解压该zip,将解压后的文件夹放在自己喜欢的目录…

nginx proxy_cache 缓存配置

前言: 由于本人工作原因,涉及到网络直播领域,其中视频的回放下载,涉及到了一些视频下载方面的技术。针对于一个完整视频的下载,目前市面上的主流做法是,先将整个视频流切片,存储到文件服务器中&…

Nginx缓存配置,以及nginx ngx_cache_purge模块的使用,ngx_slowfs_cache模块构建本地缓存

最近接触到Nginx缓存,网上查了下,这里记录一下,学习学习。 1 缓存 Web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL&#x…

Nginx高级(九):nginx缓存配置、nginx proxy_cache缓存模块指令详解

一、nginx缓存 1、什么是缓存? 1.缓存的基本概述 缓存的基本思想是利用客户端访问的时间局限性,将客户端访问过的内容做一个副本,在一定时间内存放到本地,当改数据下次被访问时,不必连接到后端服务器反复去查询数据…

Nginx缓存配置(简易实现CDN功能)

环境推荐使用openresty,自带了挺多模块的,如果直接使用nginx,需要对缺少的模块进行添加,添加教程参照百度或者OpenResty教程 1、本地站点ETag缓存 示范开启静态文件缓存 环境: nginx -v nginx version: openresty/1.15…

Nginx缓存配置教程

问题引出 假设某电商平台商品详情页需要实现 700 QPS(假设宽带是千兆宽带) 千M局域网宽带网卡速率按照1000进位,所以1Gbps1,000,000,000bps125,000,000Bps≈119.21MB/s 当达到500QPS 的时候很难继续压测上去。 假设每个页面主体渲染所需要的…

Nginx缓存配置

Nginx缓存配置 一、Nginx缓存介绍二、具体操作三、实例1 一、Nginx缓存介绍 Nginx 不仅仅是一个 Web 服务器,它还可以作为一个缓存服务器使用。通过 Nginx 缓存,可以对一些静态资源或者数据更新频率较低的后端服务做缓存,降低静态资源或后端…

nginx 缓存配置详解都是干货

一、缓存类型 1、服务端缓存 2、代理缓存 3、客户端缓存 4、代理缓存的工作流程: 二、代理缓存配置语法 1、代理缓存路径 配置语法 Syntax: proxy_cache_path path [levelslevels] [use_temp_pathon|off] keys_zonename:size [inactivetime] [max_sizesize] […

微信那些词语发不出去

在写文章的时候,会遇到以下3种情况: 1、你所编辑的图文消息可能含有敏感内容,你可以继续保存或发布该图文消息(发布等待时长约3-4小时),若保存或发布后,经核实含有敏感内容的,将可能…

微信公众号文章存在敏感词被屏蔽

在写文章的时候,会遇到以下3种情况: 1、你所编辑的图文消息可能含有敏感内容,你可以继续保存或发布该图文消息(发布等待时长约3-4小时),若保存或发布后,经核实含有敏感内容的,将可能…

微信公众平台有哪些敏感词不准发

在写文章的时候,会遇到以下3种情况: 1、你所编辑的图文消息可能含有敏感内容,你可以继续保存或发布该图文消息(发布等待时长约3-4小时),若保存或发布后,经核实含有敏感内容的,将可能…

微信公众号敏感词检测工具

在写文章的时候,会遇到以下3种情况: 1、你所编辑的图文消息可能含有敏感内容,你可以继续保存或发布该图文消息(发布等待时长约3-4小时),若保存或发布后,经核实含有敏感内容的,将可能…

微信公众号文章是否违规怎么检测?

在写文章的时候,会遇到以下3种情况: 1、你所编辑的图文消息可能含有敏感内容,你可以继续保存或发布该图文消息(发布等待时长约3-4小时),若保存或发布后,经核实含有敏感内容的,将可能…

微信小程序发布需要校验敏感信息(内容、图片)-Java后端实现

精选30云产品&#xff0c;助力企业轻松上云&#xff01;>>> 前端只需要将图片和内容传过来即可 pom依赖 HttpClient的依赖和json转换的依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><versio…

SpringBoot调用微信小程序敏感词拦截接口

SpringBoot调用微信小程序敏感词拦截接口 获取接口调用凭据 | 微信开放文档 (qq.com) 在调用微信小程序安全识别接口时需要先拿到&#xff0c;小程序的token令牌&#xff0c;需要调用下面这个接口 https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&am…

微信小程序通过云函数调用安全api,实现敏感词校验

如题&#xff0c;话不多说&#xff0c;直接上代码 1.首先需要在小程序中引入云函数框架 1.1在project.config.json中添加设置&#xff0c;同时在小程序根目录新建cloudfunctions文件夹 "cloudfunctionRoot": "cloudfunctions/" 1.2在app.json中添加设置…

php屏蔽词库,PHP调用微信过滤敏感词汇API

之前写过一篇过滤敏感词汇的文章,但是最近临近国庆,小程序提高了安全能力得检测,审核变得更加严格,要求自定义昵称、头像、签名等必须要有过滤敏感词汇得机制,严格上之前那边文章也可以过滤,但是具体微信过滤得内容就不得而知了,所以,今天就分享一下PHP利用微信小程序的…

微信小程序敏感词过滤

当你的小程序有用户提交&#xff08;评论、文章、图片&#xff09;时&#xff0c;如果你的代码没有过滤敏感词汇&#xff0c;将会审核不通过&#xff0c;幸好官方提供了API&#xff0c;方便了很多&#xff0c;废话不多说&#xff0c;干&#xff01; 本文只有文字过滤 本文采用…