Drupal随机加载旧版本的脚本

时间:2012-08-28 09:06:31

标签: javascript drupal drupal-6

在drupal 6中,我编写了一个模块,输出一些html,我使用hook_block在一个块中显示。

有一个js文件我只想在该块加载时加载,所以我在hook_block里面是drupal_add_js()。

除了这个问题之外,一切正常:刷新页面时(无论是否同时清除缓存),通常会加载旧版本的脚本。新旧版本似乎随机出现。

如何确保加载正确的版本?感谢。

编辑:我通过主题的.info文件加载的样式表之一正在做同样的事情 - 它的随机版本正在加载。所以它看起来像一个普遍的问题而不是模块或块相关。

1 个答案:

答案 0 :(得分:0)

在您对javascript文件感到满意之前,可以将其锁定并在缓存中使用,使用drupal_add_js的“defer”和“cache”参数。

在管理员中> >性能你会发现包含js和css的指令 - 如果它们被取消激活,那么每个文件都会被drupal_add_ *添加一个请求。例如,如果js的预处理设置为true,则drupal_add_js添加的所有.info javascripts和脚本将拼接在一起一个优化的深度缓存脚本

< 7.0

drupal_add_js($data = NULL, $type = 'module', $scope = 'header', $defer = FALSE, $cache = TRUE, $preprocess = TRUE)

7.0>

drupal_add_js($data = NULL, $options = NULL)

在您的情况下,如果您正在开发一个脚本或需要在每次加载时刷新一个脚本,在所有情况下都使用$cache$preprocess下的false,因此加载'main.js'看起来像:

drupal_add_js(base_path() . '/sites/default/files/myjs/main.js', 
     'core', 
     'header', 
     false, 
     false, 
     false
);

在v7 + func中,argv [1-X]将简单地放在一个关联数组中,作为$optionssee API