项目需求:请求一个网站时,浏览器会缓存CSS,导致每次更新网站的代码后,不会自动更新样式,甚至需要手动去清空浏览器的缓存,但是用户不可能每次都清空缓存,这就要求我们要解决CSS缓存问题。(添加版本号即可)
1、定义一个变量,可以全局调用
因为我们项目是用CodeIgniter框架(简称CI框架),所以在项目的application/core/MY_Controller.php 添加 “$this ->twiggy ->set('version',"1.0")
”,为了可以在页面全局调用。
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class MY_Controller extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->library('twiggy');
$twigConfig = $this ->twiggy ->getConfig();
$debug = $twigConfig['environment']['debug'];
//全局变量:seo优化文本
define("DOMAIN",$_SERVER['HTTP_HOST']);
define("KAIKE_DOMAIN",'http://localhost:8086', true);
$CI = &get_instance();
$CI ->load ->config('seoText');
$this ->twiggy ->set('seoText',$this->config->item('seoText'));
$CI ->load ->config('DomainName');
$this ->twiggy ->set('DomainName',$this->config->item('DomainName'));
$this ->twiggy ->set('context_path',$this->config->item('context_path'));
$this ->twiggy ->set('version',"1.0");//为了清空CSS、JS的缓存;每次上传代码,需要手动修改一次版本号,最好不要重复;从1.0开始
$this ->twiggy ->set('debug',$debug);
}
}
2、在页面使用全局变量 “{{ version }}
”
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<meta name="description" content="overview & stats" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<title>首页</title>
<link rel="stylesheet" href="{{ context_path }}statics/css/home.css?v={{ version }}"/>
</head>
<body>
</body>
</html>
网友评论