web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法
来源:互联网 发布:软件著作权申请流程 编辑:程序博客网 时间:2024/05/16 16:15
问题描述
最近将公司官网样式进行了调整,部署到服务器后访问发现页面展示不正常,但是刷新之后就会展示正常。
问题分析
研究之后发现可能的原因有
- css文件过大,加载缓慢
- 本地缓存问题,虽然服务器修改了css文件,但是浏览器仍然使用本地缓存的css,
需要用户多刷新一次才能正常展示显然是很不合理的,那么怎么样解决更新后让浏览器请求新的css或js文件呢?
解决办法
方法1 更新文件后更改css/js文件名。
其实解决这个问题很简单,缓存是通过文件名标记缓存的内容的。在你更新了网站的css文件内容后,在更换一下css的文件名就可以了。如原先html中的css调用语句如下:
<link rel="stylesheet" href="style.css" type="text/css" media="screen"/>
改一下css文件名:
<link rel="stylesheet" href="styleV2.css" type="text/css" media="screen"/>
方法2 给css/js文件加个版本号
每次修改css文件后还要修改css的文件名有点麻烦,那么我们可以在加载css语句中加入个版本号(即css链接中?后面的内容)就可以了。如原先html中的css调用语句如下:
<link rel="stylesheet" href="style.css?v=2015" type="text/css" media="screen"/>
将css文件的版本号改成新的:
<link rel="stylesheet" href="style.css?v=2016" type="text/css" media="screen"/>
关于css/js文件后缀参数:
css文件后面的问号起不到实际作用,仅能当作后缀,如果用问号加参数的方法,可以添加版本号等信息,更新的同时可以刷新一下浏览器端的缓存。一个小小的细节,可以给我们带来很大的方便。
比如:
<script type="text/javascript" src="homepage.js?version=1.2.6"></script>
<link rel="stylesheet" href="base.css?version=2.3.3" type="text/css"/>
使用参数的两种作用:
客户端会缓存css或js文件,因此每次升级了js或css文件后,改变版本号,客户端浏览器就会重新下载新的js或css文件,起到刷新缓存的作用。
脚本并不存在,而是服务端动态生成的,因此带了个版本号,以示区别。 即上面代码对于文件来说 等价于 :
<script type="text/javascript" src="homepage.js"></script>
<link rel="stylesheet" href="base.css" type="text/css"/>
但浏览器会认为他是 该文件的某个版本!
第一使用最多,也可能两种作用同时使用。
0 0
- web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法
- web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法
- web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法
- 【转载】----web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法
- 浏览器页面数据保存后不显示,需要重新刷新页面才能正常显示的解决方法
- 关于引用JS和CSS刷新浏览器缓存问题
- 关于flexble.js 刷新后才能自适应手机的问题
- 网站发布以后频繁不能访问,需要重启IIS服务才能正常工作的解决办法
- 解决修改css或js文件,浏览器缓存更新问题。
- 解决修改css或js文件,浏览器缓存更新问题。
- [DELVE][web]解决jsp修改后,修改的内容需要重启tomcat才能刷新出来
- 浏览器缓存_后台更新js,浏览器中更新后的js代码不显示
- 解决修改css文件或js文件后浏览器无法及时更新的问题方法
- 【XCode中变更 resource文件后,需要重新编译才能正确识别更新】问题的解决方案
- js更新dom后的强制刷新问题
- ecshop 商品详细页出现读取信息有缓存 需要后台清除缓存才能正常 一段时间后产品显示又不正常的
- 关于更新发布CSS和JS文件的缓存问题
- 关于更新发布CSS和JS文件的缓存问题
- java跳出多重循环
- Nginx负载平衡 + Tomcat + 会话存储Redis配置要点
- 富士通dpk2085打印机驱动
- Android中两种获取状态栏高度的方法
- effective3关于函数对象的理解
- web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法
- Selenium 初学笔记--Selenium IDE-简单使用
- Eclipse安装Freemarker Editor插件
- Android studio debug 模式 使用release签名
- CEF使用的几个注意点
- 数据仓库---JPivot连接MySQL VS PostgreSQL
- Python的getattr(),setattr(),delattr(),hasattr()
- Buffer overflows 缓冲区溢出
- Spark核心RDD的研究