一、什么是靜態化
靜態化是將網頁動態生成的內容轉換為靜態的 HTML 文件,使得用戶訪問時直接訪問到靜態頁面,提高網站性能的一種手段。當用戶訪問一個動態頁面時,服務器會經過一些處理,如 PHP 解析、數據庫查詢等等,才能夠將頁面返回給用戶,而靜態化則是利用緩存機制,在用戶訪問動態頁面時,將生成的靜態文件緩存到服務器上,并將用戶請求直接重定向到靜態文件上,以達到減輕服務器負擔的目的。
二、thinkphp 5 中的靜態化設置
ThinkPHP 5 中默認是沒有靜態化功能的,但是可以通過以下兩種方式進行設置。
立即學習“PHP免費學習筆記(深入)”;
1、使用插件
ThinkPHP 5 提供了一個插件 think-html,可以方便地實現網頁靜態化,使用時只需要按照以下兩個步驟即可。
(1)在應用目錄的 config.php 文件中進行配置:
return?[ ????'template'?=>?[ ????????//開啟模板布局 ????????'layout_on'?=>?true, ????????//定義布局入口文件 ????????'layout_name'?=>?'layout', ????????//靜態化后綴 ????????'html_suffix'?=>?'html', ????????//?開啟靜態緩存 ????????'tpl_cache'?=>?true, ????????//開啟靜態緩存 ????????'cache_html'?=>?true, ????????//?模板目錄 ????????'view_path'?=>?'', ????], ????'html_cache_rules'?=>?[ ????????'*'?=>?[ ????????????'{$_SERVER.REQUEST_URI|md5}', ????????], ????], ????'html_cache_time'?=>?60, ????'html_cache_suffix'?=>?'.html', ????'html_cache_path'?=>?'../runtime/html', ????'html_cache_rule'?=>?['{$_SERVER.REQUEST_URI|md5}'], ];
(2)在需要進行靜態化的地方進行設置:
//加入靜態緩存 $this->view->engine->layout(true); //開啟動態緩存 $this->view->engine->cache(false);
2、手動設置
手動設置相對復雜,需要手動開發和寫入代碼,但是可以更加靈活地控制。具體實現步驟如下:
(1)在應用目錄下新建一個 index.html 文件,此文件即為靜態化文件。
利用 .htaccess 文件實現路徑重寫,將動態路徑轉換為靜態路徑。在 .htaccess 文件中可以添加如下代碼:
RewriteEngine?on RewriteCond?%{REQUEST_FILENAME}?!-f RewriteRule?^(.*)$?index.php/$1?[QSA,PT,L]
(3)在控制器中進行設置,具體代碼如下:
public?function?index(){ ????//?檢查緩存 ????$cache?=?$this->checkHtmlCache(); ????if(!empty($cache)){ ????????//?加載靜態緩存文件 ????????exit($cache); ????} ????//?獲取動態數據 ????$data?=?$this->getData(); ????//?生成靜態文件 ????$this->createHtmlCache($data); ????//?加載靜態緩存文件 ????exit(file_get_contents($this->html_cache_file)); }
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END