引入的js或css文件后面跟的问号如?20200202是起什么作用的

修改程序的样式,发现好像没有起作用,查看网页源码,发现css后还跟着?20191101,这样的东东。

<link rel="stylesheet" type="text/css" href="http://localhost/static/vendor/layui/extend/layui-form-autocomplete/autocomplete.css?20191101">

度娘了一下,又长知识了

css和js带参数(形如.css?v=与.js?v=)   使用参数有两种可能:

第一、脚本并不存在,而是服务端动态生成的,因此带了个版本号。  

第二、这种情况更常见。用于对付客户端缓存,防止客户端会缓存css和js文件,每次升级js或css文件后,都改变版本号,强制客户端浏览器重新下载新的js或css文件 。

版本号,可以是日期值,也可以是一个递增的值版本值,大版本小版本的方式,或者根据脚本的生成时间书写,比如 20080727182553 就是精确到了生成脚本的秒,而 2.3.3 就是大版本小版本的方式。

所以修改好样式之后 ,顺便把css的版本号修改一下,这样子样式就能更新成功。

为了减少一个个文件里面修改版本号,通常可以定义一个常量,css与js引用这个常量,如果有修改时直接改常量值就可以。如:

defined('RESOURCE_STATIC_TIMESTAMP') OR define('RESOURCE_STATIC_TIMESTAMP', 20200815); // 引入静态资源使用的时间戳

<link rel="stylesheet" type="text/css" href="<?php echo base_url('static/autocomplete.css').'?'.RESOURCE_STATIC_TIMESTAMP; ?>">


参考:
https://www.cnblogs.com/yaoqj/p/4094424.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注