要使用静态缓存功能,需要开启HTML_CACHE_ON参数,并且使用HTML_CACHE_RULES配置参数设置静态缓存规则文件 。

大理石构件厂家

虽然也可以在应用配置文件中定义静态缓存规则,但是建议是在模块配置文件中为不同的模块定义静态缓存规则。

静态规则定义

静态规则的定义方式如下:

  1. 'HTML_CACHE_ON' => true, // 开启静态缓存
  2. 'HTML_CACHE_TIME' => 60, // 全局静态缓存有效期(秒)
  3. 'HTML_FILE_SUFFIX' => '.shtml', // 设置静态缓存文件后缀
  4. 'HTML_CACHE_RULES' => array( // 定义静态缓存规则
  5. // 定义格式1 数组方式
  6. '静态地址' => array('静态规则', '有效期', '附加规则'),
  7. // 定义格式2 字符串方式
  8. '静态地址' => '静态规则',
  9. )

定义格式1采用数组方式 便于单独为某个静态规则设置不同的有效期,定义格式2采用字符串方式订阅静态规则,同时采用HTML_CACHE_TIME设置的全局静态缓存有效期。

静态缓存文件的根目录在HTML_PATH定义的路径下面,并且只有定义了静态规则的操作才会进行静态缓存。 并且静态缓存支持不同的存储类型。 静态缓存仅在GET请求下面有效。

静态地址

静态地址包括下面几种定义格式:

第一种是定义全局的操作静态规则,例如定义所有的read操作的静态规则为:

  1. 'read'=>array('{id}',60)

其中,{id} 表示取$_GET['id'] 为静态缓存文件名,第二个参数表示缓存60秒。

第二种是定义全局的控制器静态规则,例如定义所有的User控制器的静态规则为:

  1. 'user:'=>array('User/{:action}_{id}','600')

其中,{:action} 表示当前的操作名称

第三种是定义某个控制器的操作的静态规则,例如,我们需要定义Blog控制器的read操作进行静态缓存

  1. 'blog:read'=>array('{id}',0)

第四种方式是定义全局的静态缓存规则,这个属于特殊情况下的使用,任何模块的操作都适用,例如

  1. '*'=>array('{$_SERVER.REQUEST_URI|md5}'),

表示根据当前的URL进行缓存。

静态规则

静态规则是用于定义要生成的静态文件的名称,静态规则的定义要确保不会冲突,写法可以包括以下情况:

1、使用系统变量

包括 _GET_REQUEST_SERVER_SESSION_COOKIE 格式:

  1. {$_×××|function}

例如:

  1. {$_GET.name}
  2. {$_SERVER.REQUEST_URI|md5}

2、使用框架特定的变量

{:module} 、{:controller} 和{:action} 分别表示当前模块名、控制器名和操作名。

例如:

  1. {:module}/{:controller}_{:action}

3、使用_GET变量

{var|function}也就是说 {id} 其实等效于 {$_GET.id}

4、直接使用函数

{|function} 例如:

  1. {|time}

5、支持混合定义

例如我们可以定义一个静态规则为:

  1. '{id},{name|md5}'

在{}之外的字符作为字符串对待,如果包含有"/",会自动创建目录。

例如,定义下面的静态规则:

  1. {:module}/{:action}_{id}

则会在静态目录下面创建模块名称的子目录,然后写入操作名_id.shtml 文件。

静态缓存有效期

单位为秒。如果不定义,则会获取配置参数HTML_CACHE_TIME 的设置值,如果定义为0则表示永久缓存。

附加规则

通常用于对静态规则进行函数运算,例如

  1. 'read'=>array('Think{id},{name}','60', 'md5')

翻译后的静态规则是 md5('Think'.$_GET['id']. ', '.$_GET['name']);

 

thinkphp 静态缓存的更多相关文章

  1. thinkphp 静态缓存设置

    'HTML_CACHE_RULES'=> array('ActionName' => array('静态规则', '静态缓存有效期', '附加规则'),'ModuleName(小写)' = ...

  2. ThinkPHP 3.2.3 数据缓存与静态缓存

    ThinkPHP 3.2.3 中手册中数据缓存的地址是:http://www.kancloud.cn/manual/thinkphp/1835 静态缓存的地址是:http://www.kancloud ...

  3. ThinkPHP第十九天(Ueditor高亮插件、扩展函数载入load、静态缓存)

    1.使用Ueditor编辑器,插入代码后,显示的时候高亮显示,需要调用Ueditor中的第三方插件third-party中的SyntaxHighlighter 调用方法: 引入CSS和JS文件,并调用 ...

  4. Thinkphp路由配置和静态缓存规则【原创】

    ThinkPHP框架对URL有一定的规范,所以如果你希望定制你的URL格式的话,就需要好好了解下内置的路由功能了,它能让你的URL变得更简洁和有文化. 首先我们在Common/config.php设置 ...

  5. ThinkPHP 静态页缓存

    通过对ThinkPHP的学习,记录下静态页的缓存步骤,以便以后查阅: 1.配置配置文件/Admin/Conf/config.php代码如下: /*静态缓存*/ 'HTML_CACHE_ON'=> ...

  6. thinkphp 删除所有缓存 Rumtime 以及 Html 静态缓存

    <?php /** * This is not a free software, All Copyright @F.Z.B * Date: 14-8-12 下午4:08 * File: Cach ...

  7. thinkphp的静态缓存,数据缓存,快速缓存,查询缓存

    // 静态缓存 // 'HTML_PATH' 缓存目录,这是个常量不是配置项,在入口文件中定义 // 'HTML_CACHE_ON'     =>    true, // 开启静态缓存 'HTM ...

  8. Thinkphp 缓存和静态缓存局部缓存设置

    1.S方法缓存设置 if(!$rows = S('indexBlog')){ //*$rows = S('indexBlog') $rows = D('blog')->select(); S(' ...

  9. Thinkphp关闭缓存方法总结(转)

    ThinkPHP在数据缓存方面包括文件方式.共享内存方式和数据库方式在内的多种方式进行缓存,通过插件方式还可以增加以后需要的缓存类,让应用开发可以选择更加适合自己的缓存方式,从而有效地提高应用执行效率 ...

随机推荐

  1. 微信小程序 封装接口

    1.util-util.js //封装接口 let baseURL = 'http://127.0.0.1:3000/'; //接口路径 let request = function (url, op ...

  2. spring之循环依赖问题如何解决

    首先,spring是支持循环依赖的.但是循环依赖并不好. 最近,我在使用jenkins自动化部署,测试打出来的jar包,出现了循环依赖的问题. 在这里说一下,我解决问题的过程 我首先根据提示找到循环依 ...

  3. WebStorm编辑器

    Webstorm的安装和免费使用 IntelliJ IDEA 注册码 (webstorm注册码):http://idea.lanyus.com/ (已经不能获取注册码了,之前的注册码可以重复使用) 安 ...

  4. ebay上传图片的要求

    eBay's Picture Requirements Introduction to Pictures in Listings Pictures make an item more appealin ...

  5. CSS:CSS 提示工具(Tooltip)

    ylbtech-CSS:CSS 提示工具(Tooltip) 1.返回顶部 1. CSS 提示工具(Tooltip) 本文我们为大家介绍如何使用 HTML 与 CSS 来创建提示工具. 提示工具在鼠标移 ...

  6. 导入安全证书到jdk

    一:.导入证书 1.打开doc窗口,打开cmd,执行命令: keytool -import -file f:\ca.crt -keystore "%JAVA_HOME%\jre\lib\se ...

  7. python url编码与解码

    上代码 #codeing:utf-8 from urllib import parse ori_url_10='http://192.168.0.10:3080/asg/portal.do?call= ...

  8. 使用Netfilter进行数据包分析

    #include <linux/init.h>#include <linux/module.h>#include <linux/skbuff.h>#include ...

  9. pandas读取文件出现路径不存在的问题

    我写的路径是绝对路径,其他的文件读写完全是没有问题的但是pandas就是不行,于是我改写为全路径:'E:/Python/KNN/iris.csv' 即可解决

  10. Django框架(五)—— 虚拟环境搭建

    目录 Django虚拟环境搭建 Django虚拟环境搭建 一.为什么要用虚拟环境 公司以前开发的项目是在Django1.5的基础上开发的,先要需要基于Django2.0开发一套项目.这样不能卸载原有版 ...