Drupal刷新“页面必需品”缓存也会删除javascript文件

时间:2010-03-01 16:40:35

标签: drupal caching

当我删除“页面必需品”缓存时,我用于主页图像旋转器的2个Javascript文件被删除。 以下是我如何将这两个文件的javascript添加到启用了PHP代码的WYSIWYG编辑器中:

<?
drupal_add_js('sites/default/files/js/jquery.jcarousellite.js');
drupal_add_js('sites/default/files/js/cycle.js');
?>
Some html here for the rotator......

然后我也只使用js Injector将一些JS代码添加到主页。

为什么会发生这种情况?

感谢

1 个答案:

答案 0 :(得分:4)

您的文件夹中不应包含永久性js文件。它们应该在您的主题中或使用它们的模块中。 files文件夹适用于Drupal即时创建的上传文件和其他文件。

问题的原因可能是Drupal对您放置文件的文件夹具有写入权限,并且清除了文件,因为它仅用于压缩。您应该考虑让drupal写入哪些文件。让Drupal对您使用的脚本文件具有写入权限,这会增加安全风险。

通常,您不希望让Drupal写入js或php文件。这是因为如果一个破解者能够让Drupal写入这些文件,他将能够或多或少地获得对整个站点的控制权。这也是drupal使用的压缩js文件具有长而随机的名称的原因。

因此,请尝试将这些文件移动到您的主题中,看看是否无法解决问题。如果你想链接到它们,你可以做

drupal_add_js(drupal_get_path('theme', 'name_of_your_theme') . 'path/to/file.js');