在网站开发过程中,样式文件的修改常常因为浏览器缓存问题导致无法及时生效。即使进行了简单的刷新操作,也可能看不到最新的样式效果。为了解决这一问题,可以通过增加版本号的方式强制刷新缓存。


手动添加版本号是一种常见方法,例如:


<link rel="stylesheet" href="{pboot:sitetplpath}/css/common.css?v=1">

每次修改后需要手动更改?v=1中的数字,但这显然不够高效。那么,有没有一种自动更新版本号的方法呢?答案是肯定的。


以下是实现自动更新版本号的具体步骤:


1. 在网站通用方法文件中添加一个自动生成时间版本号的功能。找到apps/common/function.php文件,并在文件末尾添加以下代码:


// 自动更新时间版本号 @mk-ver
function ver($url){
    $ver = filemtime($_SERVER['DOCUMENT_ROOT'].$url);
    echo $url.'?v='.date("YmdHis",$ver);
}

该函数通过获取文件的最后修改时间生成动态版本号,确保只有当文件被修改时版本号才会变化。


2. 修改原有的样式链接调用方式。将原有的样式链接:


<link rel="stylesheet" href="{pboot:sitetplpath}/css/common.css">

替换为:


<link rel="stylesheet" href="{php}ver('/template/default/css/common.css');{/php}">

注意:路径部分必须为解析后的实际路径,可以在浏览器中按Ctrl+U查看源码并复制。


完成上述设置后,每当对common.css文件进行修改并保存时,页面刷新后即可看到带有时间戳的版本号附加在样式链接后面,从而确保样式能够即时生效。


此外,这种方法同样适用于JavaScript外部文件的处理。只需按照相同的逻辑进行配置即可。


如果你对这种方法有任何疑问或有更优的解决方案,欢迎在评论区留言交流!