首页 / 帖子
不通过后台管理,Drupal如何禁用缓存?

案例是这样的,我有一个网站,复制了两份代码,但是链接同一个数据库。

比如:A是生产站点,B是测试站点。

我想不通过后台数据库设置,在A上正常使用缓存,B上禁用缓存以便测试。

有没有好的解决方法?谢谢各位!

2个答案
AnnyO
发布于:2014-07-14 18:08

可以通过settings.php来设置。

通常状态下,settings.php会include一个settings.local.php,该文件并且不在源码管理器里面。

$local_settings = dirname(__FILE__) . '/settings.local.php'; 
if (file_exists($local_settings)) { 
  include $local_settings; 
}

然后,打开settings.local.php文件,在你不需要缓存的站点里面加入如下配置文件:

// Bypass almost all Drupal caches$conf['cache_inc'] = 'includes/cache-install.inc';
 // Page cache
 $conf['cache'] = CACHE_DISABLED;
 // Block cache
 $conf['block_cache'] = CACHE_DISABLED;
 // Optimize CSS files
 $conf['preprocess_css'] = CACHE_DISABLED;
 // Optimize JavaScript files
 $conf['preprocess_js'] = CACHE_DISABLED;


YOYO
发布于:2014-07-15 08:55

也可以通过URL参数来实现。

比如 http://aaa.com?cache=disable,然后写一个hook_init,

if ($_GET['cache'] == 'disable') {
 $conf['cache'] = CACHE_DISABLED;
 $conf['block_cache'] = CACHE_DISABLED;
 $conf['preprocess_css'] = CACHE_DISABLED;
 $conf['preprocess_js'] = CACHE_DISABLED;
}