css和js带参数v或version

【转自:https://www.cnblogs.com/pizitai/p/6650450.html】

<span style="font-size:14px;">css和js带参数(形如.css?v=与.js?v= 或 .css?version=与.js?version= )  
  
<script type=”text/javascript” src=”jb51.js?version=1.2.6″></script>  
<link rel=’stylesheet’ href=’base.css?version=2.3.3′ type=’text/css’ />  
  
  
使用参数有两种可能:  
  
  
第一、脚本并不存在,而是服务端动态生成的,因此带了个版本号,以示区别。  即上面代码对于文件来说 等价于  
<script type=”text/javascript” src=”jb51.js”></script>  
<link rel=’stylesheet’ href=’base.css’ type=’text/css’ />  
  
  
但浏览器会认为他是 该文件的某个版本!  
  
  
第二、客户端会缓存这些css或js文件,因此每次升级了js或css文件后,改变版本号,客户端浏览器就会重新下载新的js或css文件 ,刷性缓存的作用。大家可能有时候发现修改了样式或者js,刷新的时候不变,就是客户端缓存了css或者js文件,因此加上参数还是有好处的!  
第二种情况最多,也可能两种同时存在。 </span>


背景

     在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css、js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css、js等,而不必从你的服务器读取,这样在一定程度上加快了网站的打开速度,又可以节约一下你的服务器流量。

 

问题

     现在问题来了,.htaccess设置的css、js缓存都有一个过期时间,如果在访客的浏览器中已经缓存了css、js,在这些css、js缓存未过期之前,浏览器只会从缓存中读取css和js,如果你在服务器上修改了css和js,那么这些更改在回头客的浏览器中是不会有变化的,除非回头客按了Ctrl + F5刷新了你的网站页面或者手动清空了浏览器的缓存。一个网站的访客成千上万,回头客也会有不少,你不可能在更新css后让每个访客都刷新一下缓存吧,那么这个问题你会怎么处理呢?

 

方法一

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

<link rel="stylesheet" href="style.css" />
 改一下css文件名就可以了:
<link rel="stylesheet" href="index.css" />
 另外一种更改css文件名的方法是将版本号写到文件名中,如:
<link rel="stylesheet" href="index.v2011.css" />

 css文件更新后,改一下文件名中的版本号即可:

<link rel="stylesheet" href="index.v2012.css" />
方法二

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

<link rel="stylesheet" href="style.css?v=2011" />
 改一下css文件的版本号改成2012就可以了:
<link rel="stylesheet" href="style.css?v=2012" />

 需要注意的是,部分代理缓存服务器不会缓存网址中包含 "?" 的资源,所以方法二可能会导致你原先的缓存功能失效,可以改用第一种方法。

总结

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

参考文章:

  1. https://www.ludou.org/css-version.html
  2. http://blog.sina.com.cn/s/blog_6e423dc601015qui.html
  3. https://www.oschina.net/question/12_58586

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值