ThinkPHP6.0解决js、css缓存问题

简介: ThinkPHP6.0解决js、css缓存问题

1、原来的写法

<link href="/static/css/m.min.css" rel="stylesheet">

2、改进后的写法


在配置文件中增加一个配置,如果需要更新就修改版本号


<link href="/static/css/m.min.css?t={{version.app_version}}" rel="stylesheet">
例如
<link href="/static/css/m.min.css?t=1623291687929" rel="stylesheet">

改进处理可以使用文件的md5值作为版本号,只要发生修改就会更新版本号


关于版本号的处理

1、每次部署的时候自动生成一个版本号文件

echo $(date "+%Y%m%d%H%M%S") > version.txt

2、配置文件中读取版本号


config/version.php


<?php
// +----------------------------------------------------------------------
// | 应用版本号设置
// +----------------------------------------------------------------------
// 生成version
// echo $(date "+%Y%m%d%H%M%S") > version.txt
$version_file = '../version.txt';
if(file_exists($version_file)){
    $version = trim(file_get_contents($version_file));
} else{
    $version = time() . '';
}
return [
    // 应用版本号,用于更新静态文件
    'app_version'         => $version,
];

3、每次渲染模板的时候在中间件中读取该配置


<?php
declare (strict_types=1);
namespace app\index\middleware;
use \Think\response\View as ViewResponse;
class CommonDataMiddleware
{
    public function handle($request, \Closure $next)
    {
        $response = $next($request);
        if ($response instanceOf ViewResponse) {
           if (!$response->getVars('version')) {
              $response->assign('version', config('version'));
           }
        }
        return $response;
    }
}

4、模板文件中使用


<link href="/static/css/m.min.css?t={{version.app_version}}" rel="stylesheet">
相关文章
|
6月前
|
移动开发 前端开发 JavaScript
征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】
本项目为信用评分模拟器教学工具,采用HTML5实现,仅供学习参考。核心功能通过JavaScript构建,包含虚拟数据生成、权重分配及信用因素分析(如还款记录、信用使用率等)。
|
6月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
6月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
6月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
前端开发 JavaScript UED
前端开发的魔法:CSS动画与JavaScript的完美结合
本文将探讨如何利用CSS动画和JavaScript的结合,为前端页面增添生动的效果。我们将通过实例展示如何使用这两种技术为网页元素创建吸引人的动画效果,并讨论它们的优缺点和适用场景。
|
Web App开发 编解码 前端开发
浏览器原理 23 # 分层和合成机制:为什么CSS动画比JavaScript高效?
浏览器原理 23 # 分层和合成机制:为什么CSS动画比JavaScript高效?
457 0
浏览器原理 23 # 分层和合成机制:为什么CSS动画比JavaScript高效?
|
Web App开发 移动开发 前端开发
梅须逊雪三分白,雪却输梅一段香——CSS动画与JavaScript动画
CSS动画并不是绝对比JavaScript动画性能更优越,开源动画库Velocity.js等就展现了强劲的性能。
梅须逊雪三分白,雪却输梅一段香——CSS动画与JavaScript动画
|
JavaScript 前端开发 UED
为什么 CSS 动画比 JavaScript 高效?
为什么 CSS 动画比 JavaScript 高效?
205 0
为什么 CSS 动画比 JavaScript 高效?
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
298 2