MTが生成した静的ファイルの管理。

| コメント(0) | トラックバック(0)

ほとんどメモ。ToDo的に書いておく。

Movable TypeをEnterprise CMS的に使う場合に、生成されるファイルの取り扱いに注意が必要。エントリーの削除、非公開の際には静的生成されたファイルは削除されるけれども、例えば以下のような場合に静的に生成されたファイルが残ってしまう (場合によっては残したくないファイルが残ってしまい、意図しないファイルが検索にひっかかってしまったりする (ここでは「ゴミ」と呼ぶ) )。

  1. テンプレートが削除された時
  2. ブログの公開パスが変更された時
  3. カテゴリーのベースネームが変更された時(且つカテゴリーアーカイブ (カテゴリー - 日付別) が指定されていてベースネームがアーカイブマッピングに含まれていた時)
  4. カテゴリーが削除された時(且つカテゴリーアーカイブ (カテゴリー - 日付別) が指定されていていた時)削除されるようです。すいません。
  5. 特定のエントリーを削除または非公開にしたことによって、特定の日付アーカイブにエントリーが存在しなくなった時
  6. ユーザーが削除された時 (且つユーザーベースのアーカイブが指定されていた時)
  7. ユーザーのdisplay-nameが変更になった時 (且つユーザーベースのアーカイブマッピングにdisplay-nameが含まれていた時)

* 最新版のMTOSではどうなるか試していない。

これらの各タイミングで、静的に構築されたファイルを削除し、再度再構築を行うことで(ゴミが残らずに)正常なファイル構成となるよね。

面倒なのは「5 (特定のエントリーを削除または非公開にしたことによって、特定の日付アーカイブにエントリーが存在しなくなった時)」だろうな。その他は何とかなるだろう。

むしろ、ステージングサーバー上でファイルを生成して、そのファイルを公開サーバーへ反映させているような運用の場合は、fileinfoテーブルを元に一旦生成されたファイルをクリーンアップしてしまって再構築し直した方がはやいかもしれない。ということで、今からちょっとだけ書く (かも)。


ちょっと書きかけ段階でメモ追記:

まとめて削除するならば、 fileinfoテーブルもどきを作って構築日時を記録するようにしておいてから、

  • template,category,entry,authorのidが既に存在しないもの(blogは除外して考える) は削除対象
  • 何らかのオブジェクトを修正した後、全再構築をかけて、(DB上の)構築日時が更新されていないもの (Indexアーカイブは除く)は削除対象
  • Indexアーカイブは、再構築直後に同じテンプレートIDの他のアーカイブを削除

でいけるか...な? だんだん混乱してきたよ。最初はfileinfo見て処理しようと思っていたけど、エントリーアーカイブのマッピングを修正した時なんからは重複するfileinfoレコードを丸めて? しまうから削除すべきファイルのチェックには使えないので。

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/87

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2008年5月12日 16:18に書いたブログ記事です。

ひとつ前のブログ記事は「パンフレットをそのまま載せたようなコーポレートサイトに意味はあるか?」です。

次のブログ記事は「ウェブ業界はどこを向いているのか、は知らんのだけれど。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6