Где я могу убедиться, что кэширование Drupal отключено для локальной разработки? - PullRequest
2 голосов
/ 27 сентября 2010

Я занимаюсь разработкой сайта в Drupal 6, и я схожу с ума, пытаясь понять, почему страницы (в частности, страницы, содержащие представления), я работаю над локальным кэшированием контента вместо обновления содержимого страницы, ичто из связанных js-файлов я полагаюсь на создание коллажей - есть ли контрольный список, который я могу проверить, чтобы убедиться, что я не пропускаю при попытке деактивировать кеширование?

Это шаги, которые я 'm:

На сервере:
  • настроить сайт на перестройку темы при каждой загрузке
  • очистить кеш, используя drush (как в drush @dev cc all`) на каждомзагрузка страницы
  • проверил, что вывод json из представления не кэширует
  • отключил кэширование css или js в admin/settings/performance
в Firefox / firebug
  • используя расширение веб-разработчика, отключил кеш
  • обновлял сайт с помощью shift-F5, чтобы принудительно очистить кеш

Я не использую лак или memcached,ни какие-либо другие модули кэширования, такие как boost - это спройти через Apache-PHP в Drupal и MySQL.

Что мне здесь не хватает?

Ответы [ 2 ]

4 голосов
/ 27 сентября 2010

Три вещи, которые вам нужно сделать:

  1. Перейти к Конфигурация сайта -> Производительность :
    • Установите следующие параметры и нажмите Сохранить конфигурацию :
      • Режим кэширования: Отключено
      • Минимальное время жизни кэша: нет
      • Сжатие страницы: Отключено
      • Кеш блоков: Отключено
      • Оптимизация CSS-файлов: Отключено
      • Оптимизация файлов JavaScript: Отключено
    • Нажмите Очистить кэшированные данные .
  2. Перейти к Создание сайта -> Просмотры -> Инструменты :
    • Проверьте Отключите кэширование данных просмотров и нажмите Сохранить конфигурацию .
    • Нажмите Очистить кэш просмотров .
  3. Установите модуль Devel и перейдите к Конфигурация сайта -> Настройки Devel :
    • Проверьте Перестройте реестр тем при каждой загрузке страницы и нажмите Сохранить конфигурацию .

Это гарантирует, что все реестры и кэши, за исключением маршрутизатора меню, будут перестраиваться на каждой странице, эффективно предотвращая кэширование на практике.

Если вам действительно необходимо перестроить маршрутизатор меню на каждой странице (это совершенно не нужно, так как вам нужно беспокоиться об этом только при изменении реализации на hook_menu() или hook_menu_alter()), вы можете добавить menu_rebuild() к hook_init() в пользовательском модуле:

function mymodule_init() {
  menu_rebuild();
} 
0 голосов
/ 27 сентября 2010

Во-первых, вам не нужно делать такие радикальные вещи, как очистка кэша, используя drush @dev cc all при каждой загрузке страницы. Также вам не нужно, чтобы реестр тем создавался при каждой загрузке страницы, если вы не занимаетесь разработкой темы

  1. Убедитесь, что кэширование страниц отключено на /admin/settings/performance
  2. Убедитесь, что у вас нет забавных правил .htaccess на вашем сайте drupal, и ваш .htaccess является стандартным, который поставляется с drupal. Возможно, вы захотите убедиться, что срок действия заголовков для html-файлов, сгенерированных Drupal, истек, а у html нет кеша в заголовке. Вы уже пояснили, что не используете boost, varnish, memcached. Было бы неплохо убедиться, что модуль apache mod_expires также включен.
  3. Убедитесь, что в каждом представлении в разделе «Основные настройки» Caching установлено на None [Я подозреваю, что это может быть причиной того, что ваши представления не обновляются]
  4. Вы используете Windows? Если это так, то это не лучшая среда для apache + PHP, и я рекомендую вам установить Ubuntu 9.10 или более раннюю версию в VirtualBox (Рекомендую Ubuntu 9.10 или более раннюю, поскольку она имеет PHP 5.2. PHP 5.3 не очень хорошо поддерживается Drupal). Вы можете использовать бесшовный режим - это действительно очень круто.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...