php tp静态化页面,ThinkCMF&Thinkphp 首页静态化处理

基于TP5的页面静态化教程

1.首页在控制器添加以下代码生成静态页面文件

$info = $this->buildHtml(“/staticIndex”, ‘static’, ‘/index’);   //调用

#”/staticIndex”  :   生成静态文件名称

#’static’  :   生成静态文件目录(此目录在public下 需要权限777才能写入)

#’/index’  :   读取源文件

public function buildHtml($htmlfile = ”, $htmlpath = ”, $templateFile = ”){

//生成静态文件

$content = $this->fetch($templateFile);

$htmlpath = !empty($htmlpath) ? $htmlpath : ‘./appTemplate/’;

$htmlfile = $htmlpath . $htmlfile . ‘.’.config(‘url_html_suffix’);

$File = new thinktemplatedriverFile();

$File->write($htmlfile, $content);

return $content;

}

具体操作如下图:

4ef82d69ab1204ed27771d1402571d49.png

上图是未生成静态文件的控制器 我们官网是分为PC移动端两个模板的  所以PC和移动端都需要

各生成一个静态文件

74f104d40dbd3537183ef3defc4bd11d.png

上图为生成静态页面并输出操作 首次执行应该会报错

解决方法:在public目录下新建static文件夹 并授权777(命令:chmod 777 static)

e2766f78e29732a65774d0ed69308cdf.png

上图操作是 判断是否已经生成了静态文件  如果已生成则直接读取静态文件并输出

更新静态文件只需要修改框架源文件并 删除已生成的静态文件 重新生成即可

$file = “static/staticIndex.html”; //判断PC端首页静态文件是否存在

if(file_exists($file))

{//存在时直接读取输出静态文件

$filename = “static/staticIndex.html”;

$handle = fopen($filename, “r”);//读取二进制文件时,需要将第二个参数设置成’rb’

$contents = fread($handle, filesize ($filename));

return $contents; //pc端

}else{

//不存在时生成静态文件

$info = $this->buildHtml(“/staticIndex”, ‘static’, ‘/index’);

// ①生成的静态页名称 ②目录 ③方法名

dump($info);

}

*要给static(静态文件目录)加777权限 (命令:chmod 777 static)

8d7cbe781635db53e0bdf1478e0dc0a7.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值