【问题标题】:How do I completely disable cache?如何完全禁用缓存?
【发布时间】:2011-02-03 22:39:11
【问题描述】:

Drupal 6 的缓存可以设置为禁用、正常或激进。我无法为我的 Drupal 7 安装找到这些选项。只有一个按钮可以刷新所有缓存,但我对模块或模板所做的每一次更改都必须单击它。通过更改,我的意思是向模块或模板添加一些 HTML 标记。

感谢 mirzu 的回复,我已经安装了devel module,但它也不起作用。我看到我的更改的唯一方法是禁用和启用该模块。

hello.module 看起来像:

function annotate_menu() {
  $items = array();
  $items['hello'] = array(
    'title'            => t('Hello world'),
    'page callback'    => 'hello_output',
    'access arguments' => array('access content'),
  );

  return $items;
}

function hello_output() {
  header('Content-type: text/plain; charset=UTF-8');
  header('Content-Disposition: inline');
  return 'annotate';
}

模板页面-hello.tpl.php 包含print $content;

我通过http://localhost/test/hello访问该页面。

【问题讨论】:

  • 定义“更改”,您要准确更新什么?有些东西被缓存了,但一般来说,你应该能够改变一个函数的内部,例如它应该更新。您是否以匿名用户身份进行测试,并且可能启用了页面缓存?如果您发布一些代码也可能会有所帮助..
  • 我添加了我的模块和模板的代码。
  • 可以禁用大部分 Drupal 的缓存,请参阅drupal.stackexchange.com/questions/28340/…上的答案

标签: drupal drupal-7


【解决方案1】:

完全禁用缓存并使用devel module 并选中“在每次页面加载时重建缓存注册表”复选框。

【讨论】:

  • 我这样做了,但它仍然没有刷新任何东西。也许我应该完全禁用缓存?
  • 谢谢,最后,我不得不切换到 Drupal 6(出于其他原因),它允许您禁用缓存功能(在性能部分)。
  • “每次页面加载时重建缓存注册表”实际上是“每次页面加载时重建主题缓存注册表”,所以没用。
  • @EduardLuca 如果你正在做主题,它非常有用。
  • 从 7.x-1.3 开始,它现在称为重建主题缓存。
【解决方案2】:

涉及许多不同级别的缓存。

  • 菜单系统实际上不是缓存。如果您更改 hook_menu() 中的任何内容,则需要重新构建它。 devel.module 在开发块中提供了一个方便的链接。

  • 此外,Drupal 还缓存钩子实现和许多其他内容,您可以通过开发块中的另一个链接清除这些内容,或者如果您安装了 drush,请使用“drush cc all”。还有一种方法可以完全禁用它,但这可能会使您的网站变慢:http://drupal.org/node/797346

【讨论】:

  • +1,感谢您指出 Drupal 管理的不同类型的缓存。
【解决方案3】:

在 Drupal 7 中,您可以在 Devel 模块的配置页面 (admin/config/development/devel) 中选中“Rebuild the theme registry on each page load”选项。

【讨论】:

    猜你喜欢
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 2014-06-24
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 2013-01-27
    相关资源
    最近更新 更多