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">
相关文章
|
8月前
|
移动开发 前端开发 JavaScript
征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】
本项目为信用评分模拟器教学工具,采用HTML5实现,仅供学习参考。核心功能通过JavaScript构建,包含虚拟数据生成、权重分配及信用因素分析(如还款记录、信用使用率等)。
|
8月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
8月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
8月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
9月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
4月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
|
5月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
274 1
Redis专题-实战篇二-商户查询缓存
|
4月前
|
缓存 运维 监控
Redis 7.0 高性能缓存架构设计与优化
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Redis 7.0高性能缓存架构,探索函数化编程、多层缓存、集群优化与分片消息系统,用代码在二进制星河中谱写极客诗篇。
|
9月前
|
缓存 NoSQL Java
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
1306 0
|
5月前
|
缓存 NoSQL 关系型数据库
Redis缓存和分布式锁
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列和内存数据库。其典型应用包括缓解关系型数据库压力,通过缓存热点数据提高查询效率,支持高并发访问。此外,Redis 还可用于实现分布式锁,解决分布式系统中的资源竞争问题。文章还探讨了缓存的更新策略、缓存穿透与雪崩的解决方案,以及 Redlock 算法等关键技术。

热门文章

最新文章