Обход кэша Drupal для нового контента


Нам нравится публиковать обновления в Facebook и Twitter при публикации нового контента. Однако мы сталкиваемся с проблемой, заключающейся в том, что анонимные пользователи получат страницу "Доступ запрещен" до тех пор, пока кэш не восстановится, чтобы показать им новое содержимое.

В настоящее время мы кэшируем страницы для анонимных пользователей в течение трех минут. Как мы сохраняем наш кэш, но при этом позволяем анонимным пользователям видеть новый контент сразу после его публикации?

Как бы то ни было, мы не используем Кэш памяти, лак или что-либо, выходящее за рамки стандартного кэширования страниц Drupal.

 1
Author: DeepFriedBits, 2013-02-26

2 answers

Я не уверен, почему вам "Отказано в доступе", когда вы просматриваете новый контент как анонимный пользователь. Новый контент еще не должен быть кэширован.

В качестве решения вашей проблемы вы можете очистить весь кэш Drupal или только кэш страниц Drupal после добавления нового контента.

Следующий код очистит кэш страницы после вставки нового содержимого:

   function MODULE_NAME_nodeapi(&$node, $op, $teaser, $page) {
      switch ($op) {
        case 'insert':
          cache_clear_all('*', 'cache_page', TRUE);
          break;
      }
    }

Примечание: Этот код не будет работать на Drupal 7

 0
Author: Aboodred1, 2013-02-27 05:29:20

403 "Отказано в доступе" при пропуске кэша кажется мне странным. Одна вещь, которую нужно попробовать, это http://drupal.org/project/adbc поскольку это заставляет двойной кэш работать так, как ожидается.

 0
Author: mikeytown2, 2013-02-26 23:36:43