介绍
最近感觉博客打开速度慢了不少,测试来看均值基本都在3秒以上,因为博客上有不少的CSS
和JS
加载速度也就慢了下来,并且本博客没有做图站分离,都是放在一起的,速度确实较慢;
于是给首页做了个静态HTML
,首页打开速度确实提升了数倍,需要的朋友也可以试试;
未做静态HTML前的打开测试
生成静态HTML后的打开测试
对比可以看出提升确实比较大,从均值3.5秒提升到了1秒以内,相当满意了;
开始
这里提供两个PHP
代码脚本,一个是不需要密码的,一个是需要密码的;
首先在网站根目录新建一个php
文件,文件命名为:jingtai.php
然后在其中写入需要的代码(不需要密码和需要密码的选择其中一个即可)
不需要密码的PHP脚本
<?php
$nowtime=time();
$pastsec = $nowtime - $_GET["t"];
if($pastsec<600)
{
exit; //10分钟更新一次,时间可以自己调整
}
ob_start(); //打开缓冲区
include("index.php");
$content = ob_get_contents(); //得到缓冲区的内容
$content .= "\n<script language=javascript src=\"jingtai.php?t=".$nowtime."\"></script>"; //加上调用更新程序的代码
file_put_contents("index.html",$content);
if (!function_exists("file_put_contents"))
{
function file_put_contents($fn,$fs)
{
$fp=fopen($fn,"w+");
fputs($fp,$fs);
fclose($fp);
}
}
?>
需要要密码的PHP脚本
<?php
/**
* 首页静态化脚本
*/
ini_set( 'date.timezone', 'PRC' );
/* 缓存过期时间 单位:秒 */
$expire = 600;
/* 主动刷新密码 格式:https://你的域名/jingtai.php?password=123456 */
$password = '123456';
$file_time = @filemtime( 'index.html' );
time() - $file_time > $expire && create_index();
isset( $_GET['password'] ) && $_GET['password'] == $password && create_index();
/**
* 生成 index.html
*/
function create_index()
{
ob_start();
include( 'index.php' );
$content = ob_get_contents();
$content .= "\n<!-- Create time: " . date( 'Y-m-d H:i:s' ) . " -->";
/* 调用更新 */
$content .= "\n<script language=javascript src='jingtai.php'></script>";
ob_clean();
$res = file_put_contents( 'index.html', $content );
if ( $res !== false )
{
die( 'Create successful' );
}
else
{
die( 'Create error' );
}
}
保存为utf8
编码后退出;
注意:如果使用的宝塔面板,还要在后台网站设置-默认文档-将index.html
的排序上调至第一位
然后在浏览器中打开PHP
脚本链接即可
打开链接后会在网站根目录下生成一个index.html
的静态文件,首页静态化也就完成了;
不需要密码脚本的链接:https://你的域名/jingtai.php
需要密码脚本的链接:https://你的域名/jingtai.php?password=123456
说明
两个PHP
脚本中的更新时间默认为600
秒,也就是十分钟更新一次,默认密码为123456
更新时间及访问密码都可以自行设定,修改脚本中的数值即可;
验证
查看是否生效,浏览器中重新打开你的网站首页,右键查看源代码
不需要密码的脚本
在最后一行如果有<script language=javascript>...
之类的字眼,说明你访问的就是index.html的页面
需要密码的脚本
在最后一行会有显示最后一次更新时间<!-- Create time: 2020-03-09 00:33:41 -->
<script language=javascript src='jt_index.php'></script>
当然也可以测试工具进行网站打开测试;
网站测试:https://www.boce.com/tool
版权声明:本文为原创文章,版权归 suntl.com 所有,转载请注明出处!
本文链接:http://suntl.com/484.html
友情提示:如果博客出现404或链接失效,请留言或者联系博主修复!
没理解缓存时间是啥意义,用crontab定时运行一下jingtai.php不就不需要这个缓存时间了!
我添加后无法使用搜索功能了怎么解决阿
https://suntl.com/674.html#%E4%B8%89%E5%8D%81%E4%B8%83%EF%BC%9A%E4%BF%AE%E5%A4%8D%E6%90%9C%E7%B4%A2%E6%A1%86%E6%8C%89%E9%92%AE
非常好的文章,申请转载一下,另外静态主页之后,主页的twikoo就不显示了是怎么回事呀
原来是可以的,我理解错了,感谢教程,没毛病∠( ᐛ 」∠)_
能不能详细指导一下把index.html文件改成首页,我已经创建了但是不知道怎么改成首页。
如果使用的宝塔面板,在网站设置-默认文档-将index.html的排序上调至第一位
大哥你设置的是8分钟自动更新的吧。。。
这个挺好,不过给不懂代码的小白提个醒,需要密码的版本是不能自动刷新的。现在的写法是必须传参数password,而js中并没有指定参数所以自动刷新会失效。想自动刷新的话请选择不需要密码的版本。这个没办法,js是明码,写在js里也跟明码一样了。
不好意思看漏了,当我没说。带密码的自动刷新时不需要密码的,没问题。
首页生成静态后,首页的搜索功能失效了,搜索后还是在首页。这个怎么搞,我是小灯泡主题按照你提示的我去查了下没有。。。
首页生成静态后,首页的搜索功能失效了,搜索后显示405
我的并没有啥大问题,输入内容后回车或点击搜索按钮即可正常搜索
你的如果有问题可以参考下搜索框修复:https://suntl.com/674.html
三十七:修复搜索框按钮
请问什么情况下回出现Create error,我一直都是出现的这个要崩了。
这个没办法帮你判断~~
博主优秀,但是静态首页后,无法首页登录账户怎么办,或者其他页面登录后,回到首页刷新会自动注销登录
我自己使用并没有注销登录的问题,你看看是不是哪里设置有问题~~
博主可以告知 你这个头像的布局是怎么设置的吗?handsome 默认是头像左边,描述右边,你这个是头像上面 描述在下面比较好看
这是版本不一样,我用的5.3.1版,6.0版后就改成在右边了~~
哎哟我去 那么尴尬的吗
感谢,问题解决了
这个教程真的简单暴力,改了下,效果显著,只有首页可以纯静态,也是非常好的。
之前在loc看到博主的blog的,果断收藏~
感谢收藏
第一个无密码的有结尾?>
第二个无?>
正常吗
可以请问一下这个自动刷新的功能是怎么实现的吗,没看懂代码怎么会自动调用更新
博主,为什么我生成的html页面没问题 但是,访问网站确是乱码啊~ 在线等,急~
每个网站程序不一样,需要自行测试是否合适,一般来说Typecho应该都适用
站点:http://youke0.xyz
那可以取消吗?我现在站点都是乱码了,我想取消算了! 可以取消吗?我把那个文件和生成的html删了站点没有变化,求解决!
将生成的index.html和jingtai.php文件删除,如果调整了index.html序位再调回来即可,也有可能是浏览器缓存的问题,清除浏览器缓存再试试
好了,好了,我把资源重新整理缓存多清理几次恢复了,谢谢博主,麻烦您了~
已经删除了,清除缓存完访问后页面还有script引入 页面没有恢复,(ó﹏ò。)
好,我去试试,感谢!
博主,可以给我你的QQ吗,我想请教你个问题
QQ基本不用了,TG:@XXXXXX
设置后打开php链接后没自动生成html文件
检查下代码中的路径名是否正确,一般都是路径名错误
路径是对的
https://s2.ax1x.com/2019/10/15/KCZoZD.jpg
我自己测试过,没有问题,你检查下代码有问题没
哦哦,原来里面也要改,搞定了,谢谢!
OK~
是不是少加了什么
那有什么搭建图床的建议吗?
可以看看这个https://suntl.com/127.html我比较喜欢,主要的简单,使用方便,还有一些界面好看的,但使用没有这个使用方便
只是为了方便测试设置两秒,默认等了二十多分钟也没更新,这样更新文章也显示不了
<script language=javascript src="f5.php?t=1571120375"></script>
这个代码前几天修改过,你是用的现在的吗?还有你将php文件名改成了f5,那代码中的路径名也要修改哦
我设置了两秒没有自动更新
先查看源代码是否设置成功,话说2秒是不是太短了~~~
<script language=javascript src="f5.php?t=1571120375"></script>
if($pastsec<2) 这样子设置 好像不会自动更新
谢谢大佬回复,可以自己搭建,但是我用的是frp内网穿透,可能域名会变,这样图片地址就失效了,有想过用现成的,但是怕失效,还有备份图片。
重要的图片还是建议本地和网络同时备份,毕竟数据无价,图床程序不是永久保存的选择,只是用来分享的