ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.
dokuwikiを使っていてふと気づくとサイドバーのアクティブ項目がぜんっぜん動いてないことがあります。
どうやら最後に編集したページが太字だったり色付きだったり(使っているテンプレートによってデザインは違います)とアクティブなページとして認識されているみたい…。
ここではdokuwikiのサイドバーのアクティブが動かないときの治し方を紹介します。
キャッシュを無効に
もうこれだけ。サイドバーのキャッシュを無効にしてください。これだけでアクティブなページがちゃんと今閲覧しているページになります。
sidebarの編集画面で以下の一行を追加
~~NOCACHE~~
なぜなの?
なんで今見ているページをアクティブにするんじゃなくって最後に編集したページをアクティブとしてしまうか、ですが正直なんでそんな不思議な動きになるのか厳密にはわたしもわかりません。dokuwikiは難しいですね。
推測ですがdokuwikiには各ページを内部でキャッシュする仕組みがあるのでサイドバーについてもある特定の状態のサイドバーをそのままキャッシュしてしまうんだと思います。
そしてそのサイドバーのキャッシュが行われるのがページを更新したタイミングなんじゃないかなと。
こうなるとページを更新したタイミングではアクティブなページはいま編集していたページなのでそこがアクティブになっている。その状態をそのままキャッシュするから後からほかのページに移ってもサイドバーのアクティブはずっとキャッシュした状態のまま、というわけです。
起こったり起こらなかったり…
ただなんでsidebarのキャッシュがされてしまってこのような不具合が出るときと普通にサイドバーが表示されているときとがあるのかは説明がつきません。
dokuwikiの内部で何かのトリガーがあるのか…。うーん、これ以上はdokuwikiのコードを読まないといけないので止めておきます。
まとめ
ここではdokuwikiのsidebarのアクティブページが動かずに最後に編集したページのままになってしまう現象の解決方法を紹介しました。
sidebarのキャッシュを無効にすれば解決はするのですが、なんでこの不具合が起こったり起こらなかったりするのかはわたしもわかっていません。
まあアクティブの表示が動かないのはそこまでクリティカルな問題じゃないと思うので割り切っていきましょう。
【おしらせ、というか完全なる宣伝】
文体がもうぜんぜん適当すぎてあれだけどものすごい自由に書いてるブログ「檸檬だくだく」もよろしく.寝る前に読める恐ろしくくだらないやつです.
こんなにも一ミリも目を引かれないタイトルを取り扱ってます: ココア20g / ハイチュウとかってさ / なぜ米と小麦を食べようと思ったのかの謎 /