Очистка Drupal кеша «Реквизиты страницы» также удаляет файлы JavaScript - PullRequest
2 голосов
/ 01 марта 2010

Когда я удаляю кеш «Реквизиты страницы», мои 2 файла Javascript, которые я использую для ротатора изображений домашней страницы, удаляются. Вот как я добавляю javascript для этих двух файлов в редактор WYSIWYG с включенным PHP-кодом:

<?
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-код, добавленный на домашнюю страницу только с помощью js Injector.

Есть идеи, почему это происходит?

спасибо

1 Ответ

4 голосов
/ 01 марта 2010

В вашей папке с файлами не должно быть постоянных js-файлов. Либо они должны быть в вашей теме, либо в модуле, который их использует. Папка files предназначена для загружаемых файлов и других файлов, которые Drupal создает на лету.

Причина вашей проблемы, вероятно, в том, что у Drupal есть доступ на запись в папку, в которую вы поместили файлы, и он очищается в ней, поскольку используется только для сжатий. Вы должны дважды подумать о том, в какие файлы вы позволяете друпалу писать. Предоставление Drupal права на запись в файл сценария, который вы используете, является дополнительной угрозой безопасности.

Как правило, вы не хотите, чтобы Drupal записывал файлы js или php. Это потому, что если взломщик сможет заставить Drupal писать в эти файлы, он сможет более или менее получить контроль над всем вашим сайтом. Именно поэтому сжатые js-файлы, которые использует drupal, имеют длинное и случайное имя.

Итак, попробуйте переместить эти файлы в вашу тему и посмотрите, не поможет ли это. Если вы хотите дать ссылку на них, вы можете сделать

drupal_add_js(drupal_get_path('theme', 'name_of_your_theme') . 'path/to/file.js');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...