1

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

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

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

我可以做些什么来确保加载正确的版本?谢谢。

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

4

1 回答 1

0

直到您对 javascript 文件感到满意,以便它可以被锁定并在缓存中使用,使用 drupal_add_js 的 'defer' 和 'cache' 参数。

在 admin >> performance 中,您会发现包含 js 和 css 的指令 - 如果它们被停用,则每个由 drupal_add_* 添加的文件都会发出一个请求。例如,如果 js 将 preprocess 设置为 true,则由 drupal_add_js 添加的所有 .info javascript 和脚本将被缝合在一起一个优化的深度缓存脚本

< 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)

在您的情况下,如果您正在开发脚本或需要在每次加载时推送一个新脚本,则在任何情况下都使用 and 下的 false $cache$preprocess因此加载“main.js”如下所示:

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

在 v7+ func argv[1-X] 中,将简单地放在一个关联数组中,如$options请参阅 API

于 2012-08-29T07:54:15.900 回答