thinkphp 靜態化 轉載

[原]ThinkPHP 頁面靜態化 實例解析

2013-2-3閱讀706 評論0

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,具體規則參看官方文檔

 

 

查看評論 更多評論(0)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章