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 \think\template\driver\File();
$File->write($htmlfile, $content);
return $content;
}
具体操作如下图:

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

上图为生成静态页面并输出操作 首次执行应该会报错
解决方法:在public目录下新建static文件夹 并授权777(命令:chmod 777 static)

上图操作是 判断是否已经生成了静态文件 如果已生成则直接读取静态文件并输出
更新静态文件只需要修改框架源文件并 删除已生成的静态文件 重新生成即可
$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)

ThinkCMF&Thinkphp 首页静态化处理的更多相关文章
- thinkphp 页面静态化
页面静态化(代码在最后) 静态页面 是网页的代码都在页面中,不需要执行asp,php,jsp,.net等程序生成客户端网页代码的网页,静态页面网址中一般不含“?”.“=”.“&”等特殊符号. ...
- ThinkPHP的静态化页面方法
原来ThinkPHP自带了生成静态页的函数buildHtml,使用起来很方便!最新的手册里没写这个方法,向大家介绍一下. protected function buildHtml($htmlf ...
- 2019-09-17 thinkphp网页静态化
public function details(){ $pid = I('get.goods_id'); $filename = "details_".$pid.".ht ...
- 基于 ThinkPHP 3.2.3 的页面静态化功能的实现
PHP 的页面静态化有多种实现方式,比如使用输出缓冲(output buffering),该种方式是把数据缓存在 PHP 的缓冲区(内存)中,下一次取数据时直接从缓冲区中读取数据,从而避免了脚本的编译 ...
- 首页自动生成静态化html
由于平台老是出现间歇性502.排查发现,php死进程过多耗费大量系统资源. 除了优化代码之外,静态化可以减少php进程.缓解一下服务器压力. 把首页生成html后,出现问题频率下降.所以需要做首页静态 ...
- Django框架开发web网站的网页优化—页面静态化
网站优化-页面静态化 1)概念 提前将页面所用到的数据从数据库查询出来,然后生成一个静态页面,之后用户来访问的时候,直接返回静态页面. 举例:首页静态化:获取首页用到的数据表中的数据,生成静态首页in ...
- PHP基础知识------页面静态化
1.在开发项目时,有时会遇到一些页面数据量特别大,但是又不经常改变的情况,如商城首页等,这时候就需要进行页面静态化,减轻服务器和数据库的压力. 这里我们先用原生的PHP写一个简单的demo,用来理解页 ...
- 利用PHP的ob函数实现生成静态化页面
之前用过一些开源的CMS管理系统,当时就很好奇后台中的生成HTML静态文件是怎么实现的.今天和同事讨论了下,没想到同事之前做过这类的生成静态页面的功能,果断向他请教了下. 经他讲解后,才知道其实生成静 ...
- 关于大型网站技术演进的思考(二十一)--网站静态化处理—web前端优化—下【终篇】(13)
本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部,不过该企业把这个事业部里的人事成本,系统运维成本特别 ...
随机推荐
- 关于docker--详解安装,常规操作,导入导出等(2017-3-29)
测试环境 :CentOS 7.1 64位 目的:展示docker的常规使用(安装,常规操作,导入导出等) 其他:关于原理等请参考文章后面的延伸阅读,本文不做深入探讨,且方法不唯一 0x01 关于安装d ...
- Spring+hibernate+JSP实现Piano的数据库操作---4.配置文件
1.applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans ...
- Spring+hibernate+JSP实现Piano的数据库操作---1.目录结构+展示
目录结构 界面
- vuex多多,怎么当好一个奶妈
前言 vue 本身更偏向于 view 层的框架,尤大大并没有一开始就给他一个完整的 mvvm 架构. 在 vue 的世界里 vuex 是用来实现 mvvm 中关键的 vm 层(视图模型层),你甚至可以 ...
- Python os.makedev() 方法
概述 os.makedev() 方法用于以major和minor设备号组成一个原始设备号.高佣联盟 www.cgewang.com 语法 makedev()方法语法格式如下: os.makedev(m ...
- PHP array_sum() 函数
实例 返回数组中所有值的和(5+15+25): <?php$a=array(5,15,25);echo array_sum($a);?> 运行实例 » 定义和用法 array_sum() ...
- [草稿] Linux 各种 打包 / 解包 命令
https://www.cnblogs.com/yeungchie/ 有不少错误 .tar格式 解包: tar -xvf FileName.tar 打包: tar -cvf FileName.tar ...
- 关于c/c++指针,指针的指针
伪军迷祝:建军节快乐! 当调用一个函数时,实际上入参使用的都是副本(除非是引用),指针也不例外.举个例子如: void func(int a, int * p); 当调用func时无论是a还是p其实传 ...
- 华为云GaussDB(DWS)内存知识点,你知道吗?
前言 在日常数据库的使用中,难免会遇到一些内存问题.此次博文主要向大家分享一些华为云数仓GaussDB(DWS)内存的基本框架以及基本视图的使用,以便遇到内存问题后可以有一个基本的判断. 注意,本篇博 ...
- Linux常用命令之cp、mv、rm、cat、more、head、tail、ln命令讲解
上一章节中,我们了解到了Linux系统的最基础的几个文件处理命令,核心的是ls命令,在今天这章中,我们来继续学习Linux对于文件操作相关的一些命令,比如复制.移动.删除.查看等命令. 1.cp 命令 ...