如何解决网站页面CSS、JS脚本在浏览器的缓存问题

本文介绍了一种通过在静态文件URL后添加版本号来解决浏览器缓存问题的方法,并提供了具体的PHP实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

客户在浏览器访问一个页面之后,浏览器会缓存一些静态文件,比如:css、js等。当技术人员对这些静态文件修改并传到服务器之后,有时客户端这边访问还是没有效果,必须Ctrl+F5强制刷新多次才有效,这往往因为浏览器缓存了css、js等静态文件所造成,解决浏览器缓存这个问题的方法便是在后面加上版本号,达到实时刷新的效果。


加版本号之前:

7a23a48f5deafef6ff00d1de232b53fe.png



加版本号之后:

411b877d2cbb91d98fb13f4ebdc881cb.png


具体PHP实现代码:

/**
 * 给静态文件追加版本号,实时刷新浏览器缓存
 * 参数 $filepath 为文件路径
 */
function static_version($filepath)
{
    // ROOT_PATH 是当前项目所在的绝对根目录
    if (!file_exists(ROOT_PATH.ltrim($filepath, '/'))) {
        return false;
    }
    $http_url = 'http://www.lvxing1788.com' . $filepath;
    $parseStr = '';
    $headInf = @get_headers($http_url,1); 
    if (is_array($headInf)) {
        $update_time = strtotime($headInf['Last-Modified']); 
        $type = strtolower(substr(strrchr($http_url, '.'), 1));
        switch ($type) {
            case 'js':
                $parseStr .= '<script type="text/javascript" src="' . $http_url . '?ver='.$update_time.'"></script>';
                break;
            case 'css':
                $parseStr .= '<link rel="stylesheet" type="text/css" href="' . $http_url . '?ver='.$update_time.'" />';
                break;
            case 'ico':
                $parseStr .= '<link rel="shortcut icon" href="' . $http_url . '?ver='.$update_time.'" />';
                break;
        }
    }
    return $parseStr;
}

html页面调用方式:

{php}echo static_version('/template/common/css/index.css');{/php}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值