web-dev-qa-db-ja.com

ビューと匿名ユーザーのキャッシュの問題

私たちのサイトでは Views を多用していますが、残念ながらキャッシュの問題があります。

フロントページには、公開日が現在の日付よりも新しいコンテンツのみを表示するビューがあります。したがって、公開日が2時間後の記事を投稿すると、2時間後に表示されます。

これはログインしているユーザーには問題なく機能します。しかし、私たちの訪問者の大部分はアカウントを持っていません。そして、ログインしていない場合、記事はランダムに公開されます。希望する日付の20分後または1時間後に表示されます。

ビューでキャッシュが有効になっていません。サイト全体で、次のオプションが有効になっています。

  • キャッシングモード:通常
  • ページ圧縮
  • ブロックキャッシング
  • CSSキャッシング
  • JavaScriptキャッシング

私たちの問題に関するヒントはありますか? Drupal 6.を使用しています。

3
user6966

scheduler module を使用して個々のノードに必要な公開日を設定することを提案する新しい回答を再投稿しました。

コンテンツは指定した日に自動的に公開されます。よく働く。

  • オーバーヘッドは増えますが、ワークフロー、ルール、アクションを使用して同じ機能を実現することもできます。
0
stefgosselin

以下は、匿名ユーザーに対して一部のページがキャッシュされるのを防ぐための小さなハックです。

// Prevents frontpage caching
if (drupal_is_front_page()) {
  $GLOBALS['conf']['cache'] = FALSE;
}

よろしくお願いいたします。

1
stefgosselin

問題は、表示されていないコンテンツが公開されていないことで、Drupalは公開されるまで非表示になります。

これは次の2つの方法で回避できます。

  1. ビューで、「コンテンツ:公開済み(はい)」のフィルターがないことを確認します。ない場合は、Nodeアクセスチェックを無効にします。[詳細]> [その他]> [クエリオプション]で、[SQL書き換えを無効にする]をオンにします。
  2. 「非公開の表示」モジュールをインストールし、匿名ユーザーが非公開のコンテンツを表示できるようにします。

そして、私はあなたのキャッシュを現在の状態のままにしておきます、負荷の下でのサイトのパフォーマンスと安定性を大いに助けます。

1

ここでページキャッシュを無効にしました(設定キャッシュモード無効化に設定)。これで問題が解決しました。

説明に記載されているように、ページキャッシュはゲスト(つまり、認証されていないユーザー)によって呼び出されたページに影響します。これらのページをキャッシュしたくないので、この機能を無効にしました。

パフォーマンスがそれほど損なわれないことを願っています。

0
user6966

これがあなたの探しているものであるかどうかはわかりません Views Content cache 。しかし、チェックアウトする価値があります。

0
aerozeppelin

boost 構成に深く入り込むことを検討している場合、この使用例はかなりうまく処理されます。職場でも同じ問題があります。あなたがそれをセットアップするのを手伝う時間はありません。 http://drupal.org/node/784676

0
mikeytown2