ThinkPHP 页面静态化 实例解析

ThinkPHP 页面静态化 实例解析

  当接到任务把页面静态化的时候,看到网上的一些原理,发现都很复杂。

于是寻找有没有现成的东西可以直接使用。庆幸的是当初选择了ThinkPHP,他真的好强大。

在官方的文档中说明了如何使用静态化

静态缓存

规则就不详细讲了,详情参考上面的官方连接。

一、

打开APP的配置文件,例如本实例是对Home下的config.php来修改,静态化的也是Home对应的模块。打开后添加以下代码
'HTML_CACHE_ON'=>true,//打开缓存
'HTML_PATH' =>'__APP__/html',//静态页面存放的目录,这里会放在ROOT/Home/html/下
'HTML_CACHE_TIME'=>'60',//静态页面存活的时间,单位为秒
'HTML_FILE_SUFFIX' => '.html',//静态页面的后缀名,也可以改为其他的后缀名字
'HTML_CACHE_RULES'=> array(
    'index'   				=> array('{:module}/{:action}'),
    'BrowserUpdate'   		         => array('{:module}/{:action}'),
    'Context:Context'   	                   => array('{:module}/{:action}/{articleid}'),
    'Context:ContextClass'	                   => array('{:module}/{:action}/{id}'),
    'Context:ContextCategory'	         => array('{:module}/{:action}/{id}'),
    'Message:touristMessage'                   => array('{:module}/{:action}'),
    'Photo:index'			         => array('{:module}/{:action}'),
    'Photo:itmes' 			         => array('{:module}/{:action}/{id}'),
 'HTML_READ_TYPE'=>0,


二、实例分析

对于首页的连接

http://127.0.0.1:8880/对应的模块应该为 IndexAction 中的 index方法根据规则

'index' => array('{:module}/{:action}'),  产生的的静态页面文件应该是ROOT/Home/html/Index/index.html

打开以上目录即可看到,由于没有设置路径的静态化,所以url还是http://127.0.0.1:8880/lixin/,但其实已经调用了html文件,如果怀疑,可以修改ROOT/Home/html/Index/index.html即可看到结果。

url的html不再本文的讨论内容内,这里省略。

以上的连接是最简单的一种规则,如果有参数怎么办?我们必须把参数加入到文件的命名规则中以区分不同参数的页面,例如

http://127.0.0.1:8880/lixin/index.php/Context/ContextCategory/id/6

在以上连接中对应着Context(ContextAction)模块下ContextCategory方法,get参数是id = 6 根据规则

'Context:ContextCategory' => array('{:module}/{:action}/{id}'), 产生的静态页面为ROOT/Home/html/Context/ContextCategory/1.html

以上的规则中还可以设置参数,例如'index' => array('{:module}/{:action}',120),表示主页的缓存时间比其他的默认缓存多了60s,具体规则参看官方文档

 

 

你可能感兴趣的:(php,笔记)