【转载】web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法

原文:http://blog.csdn.net/csdn100861/article/details/50684438

问题描述

部署到服务器后访问发现页面展示不正常,但是刷新之后就会展示正常。

问题分析

可能的原因有

  1. css文件过大,加载缓慢
  2. 本地缓存问题,虽然服务器修改了css文件,但是浏览器仍然使用本地缓存的css,

需要用户多刷新一次才能正常展示显然是很不合理的,那么怎么样解决更新后让浏览器请求新的css或js文件呢?

解决办法

方法1 更新文件后更改css/js文件名。

其实解决这个问题很简单,缓存是通过文件名标记缓存的内容的。在你更新了网站的css文件内容后,在更换一下css的文件名就可以了。如原先html中的css调用语句如下:

<link rel="stylesheet" href="style.css" type="text/css"  media="screen"/>
  • 1

改一下css文件名:

<link rel="stylesheet" href="styleV2.css" type="text/css" media="screen"/>
  • 1

方法2 给css/js文件加个版本号

每次修改css文件后还要修改css的文件名有点麻烦,那么我们可以在加载css语句中加入个版本号(即css链接中?后面的内容)就可以了。如原先html中的css调用语句如下:

<link rel="stylesheet" href="style.css?v=2015" type="text/css"  media="screen"/>
  • 1

将css文件的版本号改成新的:

<link rel="stylesheet" href="style.css?v=2016" type="text/css"  media="screen"/>
  • 1

关于css/js文件后缀参数:

css文件后面的问号起不到实际作用,仅能当作后缀,如果用问号加参数的方法,可以添加版本号等信息,更新的同时可以刷新一下浏览器端的缓存。一个小小的细节,可以给我们带来很大的方便。

比如:

<script type="text/javascript" src="homepage.js?version=1.2.6"></script>
  • 1
<link rel="stylesheet" href="base.css?version=2.3.3" type="text/css"/>
  • 1

使用参数的两种作用:

  1. 客户端会缓存css或js文件,因此每次升级了js或css文件后,改变版本号,客户端浏览器就会重新下载新的js或css文件,起到刷新缓存的作用。
  2. 脚本并不存在,而是服务端动态生成的,因此带了个版本号,以示区别。 即上面代码对于文件来说 等价于 :
<script type="text/javascript" src="homepage.js"></script>
  • 1
<link rel="stylesheet" href="base.css" type="text/css"/>
  • 1

但浏览器会认为他是 该文件的某个版本!

第一使用最多,也可能两种作用同时使用。

时间: 2024-08-15 17:21:11

【转载】web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法的相关文章

web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法

问题描述 最近将公司官网样式进行了调整,部署到服务器后访问发现页面展示不正常,但是刷新之后就会展示正常. 问题分析 研究之后发现可能的原因有 css文件过大,加载缓慢 本地缓存问题,虽然服务器修改了css文件,但是浏览器仍然使用本地缓存的css, 需要用户多刷新一次才能正常展示显然是很不合理的,那么怎么样解决更新后让浏览器请求新的css或js文件呢? 解决办法 方法1 更新文件后更改css/js文件名. 其实解决这个问题很简单,缓存是通过文件名标记缓存的内容的.在你更新了网站的css文件内容后,

web基础-web工作原理,http协议,浏览器缓存

1,web工作原理 2,http协议 3,浏览器缓存 4,cookie和session -------------------------------------------------------------------------------------------------------------------------------- 1,web工作原理 平时用浏览器,输入网址后回车,页面响应我们想要浏览的内容,简单操作的背后蕴涵了什么原理? 当输入url回车后,客户端(浏览器)会去请求

Eclipse部署Maven web项目到tomcat服务器时,没有将lib下的jar复制过去的解决办法

我们在做web开发是,经常都要在eclipse中搭建web服务器,并将开发中的web项目部署到web服务器进行调试,在此,我选择的是tomcat服务器.之前部署web项目到tomcat进行启动调试都很正常,今天突然出现无法启动情况,启动过程报如下错误: java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.Webap

SnagIt截图后无法在编辑器打开,不显示截图内容的解决办法

方法1: 用SnagIt截图后,弹出的编辑器里不显示刚才截图的内容,解决办法如下: 完全退出Snagit和编辑器,删除以下文件夹下的所有文件和文件夹: Win7用户 C:\Users\Your Username\AppData\Local\TechSmith\SnagIt XP用户  C:\Documents and Settings\Your Username\Local Settings\Application Data\TechSmith\SnagIt (注意:关闭文件夹隐藏选项,不然又可

Linux使用curl 方式安装docker-compose 后执行docker-compose version 检查安装是否成功时出错的解决办法

0x0.缘起: 今天在一台新的Fedora 25上按照官方文档,使用curl方式安装 docker-compose后,验证是否安装成功时出错: 安装时使用的命令为; curl -L https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-`uname -s`-`ur/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose 我试

安装软件后浏览器主页被篡改,弹广告和游戏的解决办法

删除弹广告和游戏的:(因为还有做过别的操作,不确定是否有效) 1.打开注册表编辑器,找到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon这一个主键,在右边窗口中找到“LegalNoticeCaption”和“LegalNoticeText”这两个字符串,删除这两个字符串.重启. 2.电脑管家中的操作:(针对进行过常规操作扫描杀毒后仍旧无效时) 进入设置中心 --->选择“杀毒”模块,点击右边的“进入信

无法更新运行时文件夹共享状态:在客户机操作系统内装载共享文件夹文件系统时出错--解决办法

1.问题描述: 在物理主机和虚拟机CentOS6.4共享文件的时候出现:无法更新运行时文件夹共享状态:在客户机操作系统内装载共享文件夹文件系统时出错 其他症状: vmware-hgfsclient  能够看到共享的文件夹名字 mount.vmhgfs  .host:/ /mnt  报错: Error: cannot mount filesystem: No such device 2.解决思路 /etc/vmware-tools/services.sh restart 如果出现FAILD yum

html+css+js整体布局——[防止浏览器扩大,界面排版混乱]

1,body-->width:100% body { background-color: rgb(238, 238, 238); color: rgb(51, 51, 51); display: block; font-family: Helvetica, "Hiragino Sans GB", "Microsoft Yahei", sans-serif; font-size: 14px; height: 11229.7px; line-height: 16.

安装win7 进入安装界面后,提示缺少CD DVD U盘驱动的个人解决办法(记一次ASUS U303 用移动硬盘装win7)

安装win7 进入安装界面后,总是提示缺少CD DVD U盘驱动: 1.开机F2进入bios 2.进入advance/usb configuration,设置: Legacy USB Support     auto, XHCI Pre-Boot Mode     smart_auto 3.F10 保存设置后重新按ESC进入安装,如题问题消失.