モジュールのキャッシュ (2012年1月17日)
MovableTypeをサイドバーやらヘッダやフッタをウィジェットにしてモジュール化し、モジュールをSSiで動かすようにしたのはいいし、再構築も30分を切るようになったのだけど、サイドバーの挙動がおかしい。最初はHTML5にしたさいのsectionタグでおかしくなっているのかと思ったのだが、そうでもなさそう。「includes_c」のフォルダにあるファイルがモジュールの表示に関わっているのは分かるのだけど、なんだか、再構築の順番でここがおかしくなってしまうんだよなあ。これのキャッシュをはずすと再構築に時間がかかってしまうのが痛し痒し。
なにか、いい方法はないものかのう?
で、最新のエントリーの部分はデフォルトのものから「MTArchiveList」タグに変更。これで、どのページだろうが最新エントリーがカテゴリーに関係なく表示されます。しかし、記事の投稿、削除を行ってもサイドバーに反映されずおかしいなと思っていました。
そして、やっと気付いたのがウィジェットの「テンプレートの設定」にある「モジュールのキャッシュ」です。最初は一番下の「作成または更新後に無効にする」にチェックを入れていました。しかし、ここではこちらの想定通りに動いてくれません。キャッシュしないなら動いてくれますが、キャッシュしなければウィジェット化した意味が無くなってしまいます。そこで、もしやと思いました。「作成または更新後に無効にする」はダイナミックパブリッシングじゃないと上手く作用しないのではないかと。ここで言うキャッシュは「includes_c」に出来るHTMLファイルのことですが、ここのファイルをはき出した後、キャッシュが無効になれば次の何かしらの更新作業があれば動くのではないかと。
ですので「キャッシュの有効期限」を時間設定してみてテスト投稿。その設定時間が過ぎた後、その記事を削除してみました。したら、ちゃんとサイドバーの表示が動きましたとさ。
スタティックでApacheのSSIでウィジェットをキャッシュ(.htaccessファイルにて拡張子.htmlで吐き出し)して使いたい場合は「キャッシュの有効期限」で時間設定して使うのがよか。時間設定は普段の記事公開なら、1分半なので余裕見て3分設定。サイトの変更作業で全体再構築はうちは25分くらいなので余裕見て40分に直して使えばよさげです。「キャッシュしない」でも同じ効果が得れるのだけど、アーカイブの再構築の度にキャッシュファイルが書き直されて、若干再構築に時間がかかります。
この記事のタグ: MovableType
Wrote by ぷー /コメント (0)
コメント
コメント記入欄