失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 基于cos-html-cache实现WordPress页面纯静态化至KVDB【HTML】

基于cos-html-cache实现WordPress页面纯静态化至KVDB【HTML】

时间:2021-05-11 01:14:21

相关推荐

基于cos-html-cache实现WordPress页面纯静态化至KVDB【HTML】

web前端|html教程

基于cos-html-cache实现WordPress页面纯静态化至KVDB

web前端-html教程

Jackie在SAE上搭建了博客,起初使用了SAE默认的Wordpress 3.4.1,版本实在太低,作为PHP盲,只好忍了。

聊天室源码app,ubuntu18pppoe,官网下载 tomcat7,爬爬虫游戏盒,php格式化展示json数据,简阳seo费用lzw

后来浏览网站时无心看到了 【WordPress SAE修改版】 WordPress on SAE 更新至 4.1,文章中提供了Wordpress 4.1 SAE改进的下载链接,以及升级方法,简单明了,于是Jackie的博客升级为了4.1版本。

微商汇源码文件,vscode颜色代码插件,ubuntu断电自,tomcat配置域名跳转,urllib图片爬虫,php.exe在哪,绍兴关键词seo推广,discu女神模特手机网站源码,商店管理系统前端模板lzw

前几天,Jackie在查阅资料时,不小心看到了 WordPress静态化插件SAE版, 于是不安分起来,参照文章中介绍的方法折腾了半天,终于搞定了静态化。

行业导航 源码,vscode文件默认位置,ubuntu编译java,tomcat日志级别解释,阳光爬虫,php 访问路径,福清提供seo大概费用,软件下载平台网站源码,好看电影手机网站模板lzw

博客静态化的操作步骤 从 cos-html-cache插件官网下载插件,当前最新版本为2.7.4。将插件解压,并上传压缩包内的文件上传至wp-content/plugins/cos-html-cache内,目录内的文件布局如下:

common.js.phpcos-html-cache.phpcosbeta-zh_CN.mocosbeta-zh_CN.poreadme-chs.txtreadme.txt

在插件目录下增加index.php文件,内容如下

<?php define("SUMMETA",""); $kv = new SaeKV(); $kv->init(); $sitemap = $kv->get($_SERVER[SCRIPT_URI]."index.html"); if ($sitemap) { header(Content-type:text/html; charset=utf-8); echo $sitemap; }else{ echo fetchUrl($_SERVER[SCRIPT_URI]).SUMMETA; } function fetchUrl($url){ $ch=curl_init(); curl_setopt($ch, CURLOPT_AUTOREFERER,0); curl_setopt($ch, CURLOPT_REFERER, staticindex); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ret=curl_exec($ch); curl_close($ch); if ($ret) { return $ret; }else{ return false; }}?>

在插件目录下增加static.php,内容如下

<?php define("SUMMETA",""); $kv = new SaeKV(); $kv->init(); $sitemap = $kv->get($_SERVER[SCRIPT_URI]); if ($sitemap) { header(Content-type:text/html; charset=utf-8); echo $sitemap; }else{ echo fetchUrl($_SERVER[SCRIPT_URI]).SUMMETA; } function fetchUrl($url){ $ch=curl_init(); curl_setopt($ch, CURLOPT_AUTOREFERER,0); curl_setopt($ch, CURLOPT_REFERER, static); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ret=curl_exec($ch); curl_close($ch); if ($ret) { return $ret; }else{ return false; }}?>

修改SAE的config.yaml,增加rewrite规则,内容如下

name: app_nameversion: app_versionhandle: - rewrite: if ( %{REQ:REFERER} != "static" && %{REQUEST_URI} ~ "html$" ) goto "wp-content/plugins/cos-html-cache/static.php" - rewrite: if ( !is_dir() && !is_file()) goto "index.php?%{QUERY_STRING}" - rewrite: if ( path ~ "/(\s*)$" && %{REQ:REFERER} != "staticindex" ) goto "wp-content/plugins/cos-html-cache/index.php"

修改cos-html-cache.php,使用SaeKV对象来保存、读取数据,如下是Patch

Index: cos-html-cache.php===================================================================--- cos-html-cache.php (revision 27)+++ cos-html-cache.php (revision 28)@@ -84,17 +84,21 @@ } if ( !strstr( strtolower($Content), \ ) ) return;+ $kv=new SaeKV();+ $kv->init();+ $kv->set($path, $Content);+ //if sql error ignore...- $fp = @fopen( $path , "w+" );- if( $fp ){- @chmod($path, 0666 ) ;- @flock($fp ,LOCK_EX );+//$fp = @fopen( $path , "w+" );+//if( $fp ){+// @chmod($path, 0666 ) ;+// @flock($fp ,LOCK_EX );- // write the file。- fwrite( $fp , $Content );- @flock($fp, LOCK_UN);- fclose($fp);- }+// // write the file。+// fwrite( $fp , $Content );+// @flock($fp, LOCK_UN);+// fclose($fp);+//} } /* read the content from output buffer */@@ -137,16 +141,27 @@ elseif( SCRIPT_URI == CosSiteHome) {// creat homepage- $fp = @fopen( CosBlogPath."index.bak" , "w+" );- if( $fp ){- @flock($fp ,LOCK_EX );- // write the file。- fwrite( $fp , $buffer.COSMETA );- @flock($fp, LOCK_UN);- fclose($fp);- }- if(IS_INDEX)- @rename(CosBlogPath."index.bak",CosBlogPath."index.html");+ + $kv=new SaeKV();+ $kv->init();+ if (IS_INDEX) {+ $kv->set(CosBlogPath."index.html", $buffer.COSMETA);+ }+ else {+ $kv->set(CosBlogPath."index.bak", $buffer.COSMETA);+ }+ ++// $fp = @fopen( CosBlogPath."index.bak" , "w+" );+// if( $fp ){+// @flock($fp ,LOCK_EX );+// // write the file。+// fwrite( $fp , $buffer.COSMETA );+// @flock($fp, LOCK_UN);+// fclose($fp);+//}+// if(IS_INDEX)+// @rename(CosBlogPath."index.bak",CosBlogPath."index.html"); } else CreateHtmlFile($_SERVER[REQUEST_URI],$buffer.COSMETA );

登录博客后台,在 设置-> 固定链接,修改URL格式为 /archives/%post_id%.html,即在末尾增加 .html。登录博客后台,打开 插件页面,找到 cos-html-cache插件,点击启用。

重新刷新首页或者文章页面,查看页面源码,如果页面底部出现如下代码,

或者

恭喜你,博客页面静态化成功。

注意事项 WP-PostViews插件的文章浏览统计特性失效,参考 通过Ajax手动解决WordPress WP-PostViews不计数的问题中的方法,在页面 前增加如下代码。

$.ajax({ url: "?>", data: {"postviews_id": "","action": "postviews","_": new Date().getTime() } });

pingback失效,在当前博客主题的header.php中,css引用前增加如下代码。

" />

参考资料 WordPress静态化插件SAE版 wordpress的缓存插件cos-html-cache的源码解读 wordpress 中使用自带 admin-ajax.php wordpress自带admin-ajax请求ajax太慢 通过Ajax手动解决WordPress WP-PostViews不计数的问题 【WordPress SAE修改版】 WordPress on SAE 更新至 4.1

如果觉得《基于cos-html-cache实现WordPress页面纯静态化至KVDB【HTML】》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。