在本地开发的时候,经常会碰到缓存引起的莫名其妙的问题,最暴力的方式就是清掉
浏览器
的缓存,或者使用Ctrl + F5,Shift + F5强制刷新页面。 有时候按了好几下,缓存还是清不掉,只能暂时禁用
浏览器
静态资源缓存了。
Nginx禁止缓存配置如下:
location ~.*\.(js|css|html|png|jpg)$
add_header Cache-Control no-cache;
在本地开发的时候,经常会碰到缓存引起的莫名其妙的问题,最暴力的方式就是清掉浏览器的缓存,或者使用Ctrl + F5,Shift + F5强制刷新页面。 有时候按了好几下,缓存还是清不掉,只能暂时禁用浏览器静态资源缓存了。Nginx禁止缓存配置如下:location ~.*\.(js|css|html|png|jpg)${ add_header Cache-Control no-cache;} ...
location ~*index.html {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
#屏蔽index.html访问
if ($request_uri ~ .*\/index\.html){
add_header Your-URI $request_uri; #测试-头部输出信息/生产环境请删除或注释
return 404;
每次把修改后的vue项目build构建的打包文件丢到线上服务器后,发现还是上一次的效果,新修改的不起效,每次都需要ctrl+F5强制刷新页面,用户太多不可能让所有人每次都这样去折腾,为啥?
vue cli不是给静态资源css、js、img自动加了哈希么,怎么还会有缓存?
经过多方调试,发现是因为入口文件index.html需要在服务器端设置禁止缓存。
解决缓存问题可以分两步走:
①nginx配置index不缓存
②代码加入版本更新检测强制刷新
解决方案一:(Linux服务器设置
如果您希望在使用 Nginx 作为前端时彻底禁用缓存,您可以在 Nginx 配置文件中添加以下内容:
location / {
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
add_header Expires 0;
这样,当用...
现在浏览器或者系统访问网页都会有自己的一套缓存机制,这就可能会导致前端代码已经更新了,但是用户还是访问了之前的缓存。
这里介绍下用nginx处理这个问题的方法,这里配置html和htm文件不缓存
server {
listen 80;
server_name test.exmaple.cn;
location / {
if ($request_filename ~* .*\.(?:htm|html)$) ## 配置页面不缓存html和htm结尾的文件
server_name test.exmaple.cn;
location / {
if ($request_filename ~* .*\.(?:htm|html)$) ## 配置页面不缓存html和htm结尾的文件
add_header Cache-Control "private, no-sto
location / {
#如果expires 和 add_header 同时开启的情况下,则add_header优于expires生效
#Cache-Control比Expires可以控制的多一些, 而且Cache-Control会重写Expires的规则
#设置禁止浏览器缓存,每次都从服务器请求
add_header Cache-Control no-cache;
add_header Cache-Control private;
#设置缓存上面定义的后缀文件缓存到浏览器的生存时间
expires -1
方式1:直接在loacation模块下加入如下参数:# 配置页面不缓存html和htm结尾的文件
if ($request_filename ~* .*\.(?:htm|html)$)
add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
}方式2:location下配置 表示最长过期时间,即一直缓存。
location ~* \.(js|css|html)$ {
expires 0;
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
这个配置会禁止对所有以 .js、.css 和 .html 结尾的文件进行缓存,并在响应头中加入 Cache-Control 和 Pragma,确保客户端不会缓存该资源。