静的HTML化によるキャッシュ・再構築機能を開発しました
-
WordPressではwp-cacheやwp-super-cacheなどがありますが、
アクセスが無いとキャッシュが生成されないと思います。
アクセスが無い私のサイトはキャッシュが生成されずとても寂しかったので、
もっとアグレッシブにキャッシュを生成するプラグインを開発しました。説明は
http://pc.freeblo.com/370.html
にあります。ぜひ皆さんに叩いて頂ければ幸いです。
-
このフォーラムの別スレッドにて解法を頂き、日本語が含まれるURLも問題無くキャッシュ出来るようになりました。
http://pc.freeblo.com/395.htmlwp-super-cacheは使った事が無いのですが(ソースコードが大きすぎて使う気にならないため)、
あちらは日本語URLが上手く動かないようですが、こちらは動きますので、
ぜひwp-super-cacheにご不満がある方はお使い頂ければ幸いです。自分の環境では
Firefox
IE6
IE7
IE8
問題無しでした。>記事を投稿、編集した際には、再構築をしないと反映されない
これ投稿押したら自動再構築とかにできませんかね?
運用上、日に何度か投稿をしますのでそのたびに手動で再構築は手間ですね・・・。
wp-super-cache乗り換えるのに悩みますね。投稿を押したら、自動で再構築をかけられるように修正を行いました。
他にも機能追加提案があればドシドシよろしくお願い致します。
http://pc.freeblo.com/401.htmleuropa3さん
早速の実装ありがとうございます。
実際に使ってみましたがもう少し希望を・・・(後出しですみません。
オプションで全再構築する・しないに追加で・・・
該当記事(編集記事)とindexだけ再構築も追加可能でしょうか?投稿が700弱・ページが650弱あるもので・・・orz
お待たせ致しました。
と言っている間に大きく構造を変えたりして、
旧バージョンと新バージョンはキャッシュ構造がまったく違い、
もしアップグレードする場合は注意が必要ですが・・・トップページと記事のみ再構築
という自動構築が可能になりました。
もしアップグレードで気になる事や、少々怖いな。と思っている方がいらっしゃれば、
サイトにコメントを頂ければ100%サポート致します。
WordPress静的HTML生成プラグインeuropa3さん
実装ありがとうございます。
Ver.0.43を入れてみました。
構造が変わったとのことだったので別サイトに入れてみましたが
動いてないっぽいかんじです(;´Д`)パーマリンク設定
/%year%/%monthnum%/%day%/%postname%/
.htaccess
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /blog/ RewriteRule .*\.html/.* /index.php [L] RewriteCond %{REQUEST_FILENAME} !^.*(jpg|gif|jpeg|png|JPG|JPEG|GIF|PNG|bmp|BMP|css|CSS).*$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] </IfModule> # END WordPress
make-cache/cache以下にhtmlはできているのでプラグインは動いていますが、
管理者以外(非登録ユーザー)でアクセスしコメントをしても再構築なしで反映されてしまいます。
動いているかの確認を確実にするにはどうすればいいでしょうか?masaruさん
早速ダウンロードして頂き誠に有り難うございます!
cache以下にファイルは出来ている。とのことで、
恐らくプラグインは動いているのでは?
と思います。なので、取り急ぎcache以下に生成されたファイルをどれか強引に修正しまして、
URLからアクセスしてみてもらうと、cache以下のhtmlを使っているのか、それともWordPressのシステムが生成して出力しているのか?
が判断出来るかと思います。
例えばキャッシュ以下に
2010/02/20/WordPress%12%11%11%12/index.html
というようなファイルが出来ていたら、このindex.htmlを修正してみてください。その後、
http://~~~/2010/02/20/WordPress%12%11%11%12/
にアクセスして、書き換えたはずの情報が出てこなければ、make-cacheが使われておりません・・・またコメントに関してなのですが、実は.htaccessに
RewriteRule .*\.html/.* /index.php [L]
を書き加えている関係で、コメント処理が起こったら、
キャッシュは使わずにWordPressの出力を使うようにしております。
ここは悩んだのですが、コメント投稿して承認待ちになった状態でも、
投稿者本人はページで確認したいよな・・・
と思ったわけでして。
管理者では無い投稿者が投稿した場合、
『承認待ち』
というメッセージ付きでページに反映されておりませんでしょうか?試しに他のブラウザでそのページを見てみると、恐らく投稿された情報は表示されない気がします。
まずはお試し頂き有り難うございます。
そしてフィードバック本当に有り難うございます!助かります!原始的な方法ですが私はこの方法しか思いつかず、これで試しておりますw
europa3さん
キャッシュ以下のファイルを直接変更してみてアクセスしましたら
変更前の情報が表示されました(;゜ロ゜)
試しに
/blog/wp-content/plugins/make-cache/cache/2010/02/17/
に直アクセスすると書き換えた情報で表示はされました。また、自動再構築のタイミングを何もしないにして記事投稿や編集をしてみましたが
やはり再構築しないでも即表示されました。
ん~make-cacheが使われてないみたいですね。ほかのキャッシュ系プラグインは一度も使ったことがないです。
アパッチの設定で
DirectoryIndex index.html index.htm index.shtml index.php index.cgi
は入れてます。動かない原因とか心当たりありますでしょうか?
うーむ。引き続きフィードバック頂き誠に有り難うございます。
取り急ぎあまり思い当たるところが無いのですが、
すでに静的HTMLが/blog以下に存在している。ということは無いですよね・・・
/blog/2010/02/17/index.html
みたいな感じです。
DirectoryIndexが効いているであれば恐らくこれが考えられますが・・・その他、私のサイトの説明の書き方が不足していて、非常に申し訳ございませんでした。
.htaccess
を拝見しますと、
RewriteRule .*\.html/.* /index.php [L]
はmasaruさんの場合
RewriteRule .*\.html/.* /blog/index.php [L]
が良いかもしれません。これでコメント云々は解決する可能性もありますが、
cacheディレクトリ以下のファイルを書き換えても反映されないところを見ると、
これ以前のお話ですよね・・・何かピンポイントのアイディアがほしいところなのですが、
例えば
WordPressのアドレス
と
ブログのアドレス
を変えたりされておりますでしょうか。こちらでは、この違いも吸収して動いておりましたが、環境によって変わるんですかね・・・?
私の環境でしか動かないんじゃ、使えないプラグインですよねw
オレ仕様しかダメなら公開するな。って感じで申し訳ない気持ちでいっぱいです・・・europa3さん
返信ありがとうございます。
>すでに静的HTMLが/blog以下に存在している。ということは無いですよね・・・
>/blog/2010/02/17/index.html
>みたいな感じです。
鯖内とURL直でアクセスしましたが存在していません。>masaruさんの場合
>RewriteRule .*\.html/.* /blog/index.php [L]
>が良いかもしれません。
変更してみましたが変化ありませんでした^^;また、WordPressのアドレスとブログのアドレスの変更はしてません。
両方ともドメイン/blogです。失念していたエラーログをのぞいてみたら・・・下記がありました。
管理画面>投稿>キャッシュ再構築を選んだ時に出ました。
File does not exist: /home/public_html/wp-content, referer: http://www/blog/wp-admin/edit.php?page=make-cache/make-cache.php
気になったのがWPの配置場所は/home/public_html/blogなのに何故トップディレクトリを見に行ってるかですね。
管理画面は表示されますし、再構築とかも可能です。追記:
make-cache.phpの111行目と126行目を/blog/wp-content/plugins/
にしたら
エラーがでなくなりましたが相変わらずキャッシュを見に行かないです^^;masaruさん!たぶん直りましたよ!!
やはりオレ仕様でした。大変失礼致しました。私のブログは
http://pc.freeblo.com/
というように、ドメイン直下にWordPressを展開していたのですが、バージョン0.43までは
http://pc.freeblo.com/blog/
というように、blogディレクトリの下に展開している場合に、キャッシュは作成されるが肝心のキャッシュ読み込みのタイミングで使われない。
という衝撃の問題があることが判明致しました。試しに新しいバージョンをインストールして頂ければ、たぶんキャッシュを見に行くようになるかと思います。
http://pc.freeblo.com/blog/
http://pc.freeblo.com/blog2/blog2_2/
という二つのWordPressを用意してテストした結果では、うまくキャッシュを参照しておりました。その他、追記頂いた内容なのですが、これは私も最初に見た時、
「おお、絶対パス指定している。なんてこと!」
と思ったのですが、これはWordPressのプラグイン内でJavaScriptを呼び出す時の書き方らしく、
このままで良いもの『っぽい』です。
ただ、おっしゃる通りトップディレクトリのwp-contentを見ようとしている点は解せませんね・・・このエラーがどこで出たのかは非常に気になりますので、
もしかしたら新しいバージョンのものならば、この問題は出ないかもしれませんので、
よろしければログもチェックして厳しくご指摘頂ければ幸いです。
どうぞよろしくお願い致します。europa3さん
ご対応ありがとうございます。
新バージョンで確認しましたところ無事に動作しました(。・ω・。)しかし管理画面>投稿>キャッシュ再構築選択時のエラーは依然出ます(;゜ロ゜)
あと少し不便に思ったのが、コメントを承認する都度、全構築しないと駄目なのが・・・
記事件数が多いと再構築の時間が・・・orz
何かいい回避方法があればいいのですけどね(゜_゜)試しているサイトは
179投稿・3ページ・4カテゴリー・35コメント
で2分前後でした。適用したいほかのサイトは・・・投稿が700弱・ページが650弱・コメントが350弱・・・
脳内てきと~計算ですが、素敵な分数が出そうです(^□^;)europa3さんの技術力に期待(。・ω・。)b
- トピック「静的HTML化によるキャッシュ・再構築機能を開発しました」には新たに返信することはできません。