一,前言

模板完全静态化,也就是通过模板完全生成纯静态的网页,相比动态页面和伪静态页面更安全更利于SEO访问更快。

二,实现思路

1,根据模块/控制器_MD5(参数)动态递归创建目录2,file_exists判断生成的静态页是否存在,是否过期,存在并且未过期则重定向到静态网页3,不存在或者文件已过期,则file_put_contents($file,$content)函数生成静态页面

三,编码

1,基类中的生成前与生成后的方法class Common extends BaseController{

//静态模板生成目录

protected $staticHtmlDir = "";

//静态文件

protected $staticHtmlFile = "";

//判断是否存在静态

public function beforeBuild($param = []) {

//生成静态

$this->staticHtmlDir = "html".DS.$this->request->controller().DS;

//参数md5

$param = md5(json_encode($param));

$this->staticHtmlFile = $this->staticHtmlDir .$this->request->action() . '_'  . $param .'.html';

//目录不存在,则创建

if(!file_exists($this->staticHtmlDir)){

mkdir($this->staticHtmlDir);

}

//静态文件存在,并且没有过期

if(file_exists($this->staticHtmlFile) && filectime($this->staticHtmlFile)>=time()-60*60*24*5) {

header("Location:/" . $this->staticHtmlFile);

exit();

}

}

//开始生成静态文件

public function afterBuild($html) {

if(!empty($this->staticHtmlFile) && !empty($html)) {

if(file_exists($this->staticHtmlFile)) {

\unlink($this->staticHtmlFile);

}

if(file_put_contents($this->staticHtmlFile,$html)) {

header("Location:/" . $this->staticHtmlFile);

exit();

}

}

}}

2,控制器中的使用public function getList($id = ''){

//判断静态界面是否存在

$this->beforeBuild(array($id));

// do someing

$name = "测试静态化";

$html = View::fetch('/get_list',['name'=>$name]);

//生成静态界面

$this->afterBuild($html);}

thinkphp6生成html,tp6全站静态化相关推荐

  1. wordpress实现全站生成html静态缓存文件-wp全站静态化

    如何让wordpress网站访问速度变的飞快,怎样做好wordpress网站的安全防护,答案是一个方法即可解决,那就是实现全站html静态化. 网上有很多实现wordpress缓存的插件,很多都不尽人 ...

  2. 极致加速:利用Really Static插件实现WordPress全站静态化

    Wordpress 是采用PHP+MySQL的架构完成网站页面呈现的.客户端浏览器访问网站页面是首先通过PHP(超文本预处理解释性的语言)调用MySQL中的数据反馈给你最终浏览器看到的页面的. 而我们 ...

  3. wordpress 静态化 linux,将Wordpress全站静态化

    如何将Wordpress全站静态化,这样可以提高站点的访问速度.不过这会让wp网站的搜索.登录等这些动态功能失效.如果是打算优化wordpress的访问速度,其实不太建议将全站静态化.对于几乎不更新的 ...

  4. 开源 java CMS - FreeCMS2.7 移动端全站静态化

    项目地址:http://www.freeteam.cn/ 移动端全站静态化 从左侧管理菜单点击全站静态化进入. 点击"全站静态化"按钮可直接执行全站静态化. 全站静态化会静态化此站 ...

  5. thinkphp6生成html,TinkPHP6-tp6实现全站静态化方法

    一,前言 模板完全静态化,也就是通过模板完全生成纯静态的网页,相比动态页面和伪静态页面更安全更利于SEO访问更快. 二,实现思路 1,根据模块/控制器_MD5(参数)动态递归创建目录 2,file_e ...

  6. java如何页面全站静态化

    一般新闻发布全站如何静态化,实其具体的方法很多,可以通过freemarker去实现,也可以通过apache配制文件去实现(apache自带有页面静态生成功能,当你配制后第一次访问该页面时就生成了静态文 ...

  7. java 全站静态化_java如何页面全站静态化

    静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别?       比对如下:                               ...

  8. php 织梦wap源码,织梦手机静态页生成插件 DEDE WAP静态化 手机端生成静态

    织梦手机静态页生成插件 织梦手机端本身默认没有静态,很多客户都想做手机端静态,这次你们有福了, 织梦手机静态页生成插件是一个安装后,可以生成手机版静态页,提高手机版网页的访问速度,更加有利于SEO. ...

  9. typecho 全站ajax,typecho全站静态化方案

    typecho全站静态化方案 我若为王 • 2020 年 03 月 30 日 Loading... ## 方案 利用wget全站保存为html,然后再修改文件中的链接 ## 脚本 ``` $url = ...

最新文章

  1. poj 3660 Cow Contest
  2. 常用地理数据平台及环境数据资源 (GIS)
  3. 园内ORM讨论的经典文章及评论[转]
  4. C语言实现拓扑排序topological sort算法(附完整源码)
  5. Pandas 表格样式设置指南,看这一篇就够了!
  6. sybase游标使用方法
  7. suList() 和 asList()
  8. 已走过8年时间!百度这一重要产品正式宣布停止服务
  9. 【正则表达式】正则表达式引发的惨案 回溯 超时 cpu 100
  10. R语言实现︱局部敏感哈希算法(LSH)解决文本机械相似性的问题(一,基本原理)
  11. 输出有向图的邻接矩阵
  12. eq, neq.gt,ge,lte,lt,not,mod的含义
  13. Copy and Paste GAN: Face Hallucination from Shaded Thumbnails
  14. 什么品牌台灯最舒服?盘点2023最好的台灯品牌
  15. 【区块链108将】BKFUND许超逸:Token为基金管理行业带来新的空白市场机会
  16. 误删了efi分区,怎么样恢复,使电脑开机回到windows
  17. 设计一个类代表二维空间的一个点,设计一个类代表二维空间的一个圆。要求两个成员变量。一个是圆心,一 个是半径,提供计算面积的方法。为上述Cricle类添加一个方法,计算一个点(Point)是否在圆内
  18. 空仓者控制仓位,精选个股,波段操作
  19. 715 工作制要来了!这家大公司老板:996 算个毛啊,我们715...
  20. OSChina 周一乱弹 ——老东西!爷爷我!帮你拿!

热门文章

  1. 如何拖动末端使机器人运动仿真-使用Peter机器人工具箱
  2. 搜索旋转排序数组(JAVA 二分查找)
  3. 关于OleDbParameter的困扰
  4. VMware Exception 0xc0000005 (access violation) has occurred. 报错
  5. 【云享M密码】与云享M1初恋,我是不是有“瘾”了
  6. Towards Universal Object Detection by Domain Attention翻译
  7. 面试官:聊聊你知道的跨域解决方案
  8. 名编辑电子杂志大师教程 | 如何把优酷视频嵌入到EXE电子书里?
  9. iOS 7: 如何为iPhone 5S编译64位应用
  10. offsetParent 深度解析