一、什么是靜態(tài)化
靜態(tài)化是將網(wǎng)頁動(dòng)態(tài)生成的內(nèi)容轉(zhuǎn)換為靜態(tài)的 HTML 文件,使得用戶訪問時(shí)直接訪問到靜態(tài)頁面,提高網(wǎng)站性能的一種手段。當(dāng)用戶訪問一個(gè)動(dòng)態(tài)頁面時(shí),服務(wù)器會(huì)經(jīng)過一些處理,如 PHP 解析、數(shù)據(jù)庫查詢等等,才能夠?qū)㈨撁娣祷亟o用戶,而靜態(tài)化則是利用緩存機(jī)制,在用戶訪問動(dòng)態(tài)頁面時(shí),將生成的靜態(tài)文件緩存到服務(wù)器上,并將用戶請(qǐng)求直接重定向到靜態(tài)文件上,以達(dá)到減輕服務(wù)器負(fù)擔(dān)的目的。
二、ThinkPHP 5 中的靜態(tài)化設(shè)置
ThinkPHP 5 中默認(rèn)是沒有靜態(tài)化功能的,但是可以通過以下兩種方式進(jìn)行設(shè)置。
1、使用插件
ThinkPHP 5 提供了一個(gè)插件 think-html,可以方便地實(shí)現(xiàn)網(wǎng)頁靜態(tài)化,使用時(shí)只需要按照以下兩個(gè)步驟即可。
(1)在應(yīng)用目錄的 config.php 文件中進(jìn)行配置:
return [
'template' => [
//開啟模板布局
'layout_on' => true,
//定義布局入口文件
'layout_name' => 'layout',
//靜態(tài)化后綴
'html_suffix' => 'html',
// 開啟靜態(tài)緩存
'tpl_cache' => true,
//開啟靜態(tài)緩存
'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}'],
];
登錄后復(fù)制
(2)在需要進(jìn)行靜態(tài)化的地方進(jìn)行設(shè)置:
//加入靜態(tài)緩存 $this->view->engine->layout(true); //開啟動(dòng)態(tài)緩存 $this->view->engine->cache(false);
登錄后復(fù)制
2、手動(dòng)設(shè)置
手動(dòng)設(shè)置相對(duì)復(fù)雜,需要手動(dòng)開發(fā)和寫入代碼,但是可以更加靈活地控制。具體實(shí)現(xiàn)步驟如下:
(1)在應(yīng)用目錄下新建一個(gè) index.html 文件,此文件即為靜態(tài)化文件。
利用 .htaccess 文件實(shí)現(xiàn)路徑重寫,將動(dòng)態(tài)路徑轉(zhuǎn)換為靜態(tài)路徑。在 .htaccess 文件中可以添加如下代碼:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
登錄后復(fù)制
(3)在控制器中進(jìn)行設(shè)置,具體代碼如下:
public function index(){
// 檢查緩存
$cache = $this->checkHtmlCache();
if(!empty($cache)){
// 加載靜態(tài)緩存文件
exit($cache);
}
// 獲取動(dòng)態(tài)數(shù)據(jù)
$data = $this->getData();
// 生成靜態(tài)文件
$this->createHtmlCache($data);
// 加載靜態(tài)緩存文件
exit(file_get_contents($this->html_cache_file));
}
登錄后復(fù)制
以上就是ThinkPHP5中靜態(tài)化怎么設(shè)置的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.xfxf.net其它相關(guān)文章!






