MICUU
心情
所有
图集
登录
搜索
原创
thinkphp6.0全局页面静态化处理办法tp 生成静态html
巡山小妖精
发布于:2021-03-24
页面静态化,以前也有想过,但是觉得没什么必要!这次接到的单子用户要求页面全局静态化,没办法,只有自己研究一下了,经过百度已经bing搜索总结了一下,觉得这个方案简单可行,拿去分享给大家。 ## 思路: 1:确定静态页面的页面路径 如我的是按照 {$controller}{$page}_{$action}{$id}.html 2:在每个方法访问前判断静态页面是否存在,并且没有超过缓存,如果满足则跳转到静态页面对应的文件网址如: https://ahjj.micuer.com/html/Index_tutor.html 3:写入文件 view()->getContent()可以获取模板HTML内容 ``` file_put_contents("./html/{$controller}{$page}_{$action}{$id}.html", view()->getContent()); ``` 既然有了思路那么我们就开始整理吧,我的是tp6.0,支持中间件,所以就免去了每个方法判断的麻烦处理了,直接中间件搞定。统一在每个请求前加个中间件,在每个请求后加个中间件完事。 前置中间件 ``` 文件路径位于:app/middleware <?php /** * Created by PhpStorm. * User: Administrator * Date: 2020/12/23 * Time: 15:10 * micuer.com 承接小程序,网页,app,h5等开发 */ namespace app\middleware; class Before { public function handle($request, \Closure $next) { // 添加中间件执行代码 $controller = \request()->controller(); $action = \request()->action(); $id = \request()->param("id","","trim"); $page = \request()->param("page","","trim"); try { $file_time = filemtime("./html/{$controller}{$page}_{$action}{$id}.html"); if((time() - $file_time) <= 60){ $url = (string)\request()->domain()."/html/{$controller}{$page}_{$action}{$id}.html"; header("Location: {$url}"); return redirect($url); } }catch (\Exception $exception){ } return $next($request); } } ``` 后置中间件 ``` <?php /** * Created by PhpStorm. * User: Administrator * Date: 2020/12/23 * Time: 15:10 * micuer.com 承接小程序,网页,app,h5等开发 */ namespace app\middleware; class After { public function handle($request, \Closure $next) { $response = $next($request); // 添加中间件执行代码 $controller = \request()->controller(); $action = \request()->action(); $id = \request()->param("id","","trim"); $page = \request()->param("page","","trim"); file_put_contents("./html/{$controller}{$page}_{$action}{$id}.html", view()->getContent()); $url = (string)\request()->domain()."/html/{$controller}{$page}_{$action}{$id}.html"; header("Location: {$url}"); return $response; } } ``` 这样一来就完成了html的保存和自动跳转功能了。
注:原创不易,转载请注明出处(
https://micuu.com/new/1495.html
),本站所有资源来源于网络收集,如有侵权请联系QQ245557979进行清除。
最后修改与 2022-02-21
上一篇:
js判断checkbox是否选中
下一篇:
linux解压及压缩命令zip
留言反馈
请先登录
问题反馈渠道,如有软件无法下载或者其他问题可反馈。【由于某种原因,目前留言不展示】
用户需要登录后才能留言反馈
立即留言
珍藏视频
10分钟高效燃脂
30天高效瘦脸操
5分钟缓解颈椎操
友人
微博
全民K歌
唱吧
今日头条
悠悠网
科技小锅盖
彼岸桌面
阮一峰
laravel社区
V2ex
掘金
更多>