我正在使用Drupal 6.26。当我将页面参数更新为150到50时,我刷新页面并看不到任何更改。当我从性能页面清除缓存时,我只看到了更改。由于我在Windows上本地测试Drupal,所以缓存的设置都被关闭了。现在我知道在Drupal 5上你有一个布尔标志,它是$ may_cache但是看看API这个选项对于Drupal 6是不存在的。
有没有办法在每次看到更改时都不清除缓存?
function usman_menu(){
$items['usman/hello'] = array(
'page callback' => 'usman_example',
'access callback' =>'user_access',
'access arguments' =>array('access content')
);
$items['usman'] = array(
'page callback' => 'usman_begin',
'page arguments' => array('150'),
'access callback' =>'user_access',
'access arguments' =>array('access content')
);
return $items;
}
function usman_begin($id = 20, $message = "YES", $optional = "NO"){
print "Loaded " . __FUNCTION__;
print "<br/>";
print "ID is $id, Message is $message, Option is $optional";
}
好的,我现在已经了解了一些关于菜单钩子的知识。我只是在玩代码来查看路径如何与参数和占位符一起工作。它足够快速,让我测试并不得不求助于清除缓存。我发现这很奇怪,因为没有选项可以暂时通过性能页面禁用此类缓存,仅供开发人员使用。
感谢。
答案 0 :(得分:1)
如果不更改核心文件,我不知道有什么方法可以做到这一点(显然这不是一个好主意)。
菜单项被缓存,在调用menu_rebuild()
之前不会刷新,直到刷新缓存(或调用其他一些管理任务之一)才会发生。
无论你采用哪种方式,你都必须至少清除cache_menu
表,否则就不会调用hook_menu()
。
答案 1 :(得分:1)
如果我理解你的问题,我的答案就是否定。
我假设您正在更改'page arguments'=&gt;中的参数值阵列( '150')。由于整个定义被缓存,并且下次访问相同的路径时,使用缓存的数据并且不调用hook_menu。
我能提供的唯一建议是:
drush cc all
,或使用devel。