web-dev-qa-db-ja.com

カスタム条件に基づいてビューのキャッシュを無効にする方法は?

カスタムコンテンツタイプ(story)があり、そのコンテンツタイプのノードをリストするビューにストーリーが表示されるかどうかを決定する日時フィールドがあります。ノードに定義された日時が現在の日時よりも新しい場合、その日時は表示されません。

私の問題は、admin/config/development/performanceを空にしてClear all cachesをクリックするか、Cache pages for anonymous usersをオフにする必要があることです。

匿名ユーザーのためにページをキャッシュし続けたいので、他のオプションを探しています。

どんな助けでも大歓迎です。

4
Egil Hansen

問題はビューがキャッシュされているのではなく、ページ全体がキャッシュされているようです。 Drupalに完全なページがキャッシュされている場合、ビューがキャッシュされているかどうかは関係ありません。必要なことは、条件付きでページキャッシュを無効にするか、最初にそのページをDrupalキャッシュしないようにすることです。

最初の方法についていくつかの talk がありましたが、これは私がテストしたことやアドバイスできることではありません。

Drupalキャッシングシステムをいじると、予期しない問題が発生する可能性があることに注意してください。

別の解決策は、ページキャッシュを空にするか、特定のページのキャッシュを1日1時間に1回無効にして、比較的最新であることを確認することです。これはおそらく私がこの状況でとるであろうルートです。

3
googletorp

これは私たちのセットアップの要件であるため、私はあなたが望むものを正確に行うブースト用のパッチを持っています。問題は、外部クローラーが必要なことです。 1,100のドメイン全体で30秒ごとに新しいコンテンツをチェックし、それらを再クロールします。あなたがしたいことができる;しかし、私はそれを平均的なセットアップで機能させる詳細についてはまだ取り組んでいます。これはD6でも使用できるため、あまり役に立ちません。

長い話ですが、時間切れかどうかを確認するには外部のものが必要ですORこれを処理するsettings.phpのロジック。外部のものがcronである可能性が最も高いでしょう。

1
mikeytown2