最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:懂视网 责编:小采 时间:2020-11-27 16:38:39
文档

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

基于cos-html-cache实现WordPress页面纯静态化至KVDB_html/css_WEB-ITnose:Jackie在SAE上搭建了博客,起初使用了SAE默认的Wordpress 3.4.1,版本实在太低,作为PHP盲,只好忍了。 后来浏览网站时无心看到了 【WordPress SAE修改版】 WordPress on SAE 更新至 4.1,文章中提供了Wordpress 4.1 SAE改进的下载链接,以
推荐度:
导读基于cos-html-cache实现WordPress页面纯静态化至KVDB_html/css_WEB-ITnose:Jackie在SAE上搭建了博客,起初使用了SAE默认的Wordpress 3.4.1,版本实在太低,作为PHP盲,只好忍了。 后来浏览网站时无心看到了 【WordPress SAE修改版】 WordPress on SAE 更新至 4.1,文章中提供了Wordpress 4.1 SAE改进的下载链接,以

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

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

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

博客静态化的操作步骤

  1. 从 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
  2. 在插件目录下增加index.php文件,内容如下
    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; }}?> 
  3. 在插件目录下增加static.php,内容如下
    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; }}?> 
  4. 修改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" 
  5. 修改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 );
  6. 登录博客后台,在 设置-> 固定链接,修改URL格式为 /archives/%post_id%.html,即在末尾增加 .html。
  7. 登录博客后台,打开 插件页面,找到 cos-html-cache插件,点击启用。
  8. 重新刷新首页或者文章页面,查看页面源码,如果页面底部出现如下代码,

     

    或者

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

注意事项

  1. WP-PostViews插件的文章浏览统计特性失效,参考 通过Ajax手动解决WordPress WP-PostViews不计数的问题中的方法,在页面 前增加如下代码。
     
  2. 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/css

    基于cos-html-cache实现WordPress页面纯静态化至KVDB_html/css_WEB-ITnose:Jackie在SAE上搭建了博客,起初使用了SAE默认的Wordpress 3.4.1,版本实在太低,作为PHP盲,只好忍了。 后来浏览网站时无心看到了 【WordPress SAE修改版】 WordPress on SAE 更新至 4.1,文章中提供了Wordpress 4.1 SAE改进的下载链接,以
    推荐度:
    标签: 静态 html wordpress
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top