Простой способ вынести все js файлы в подвал — копируем файл modules/system/html.tpl.php
в папку темы, если его ещё там нет, и переносим переменную $scripts
перед $page_bottom
:
<!DOCTYPE html>
<html lang="<?php print $language->language; ?>">
<head>
<?php echo $head; ?>
<title><?php echo $head_title; ?></title>
<?php echo $styles; ?>
</head>
<body class="<?php echo $classes; ?>" <?php echo $attributes; ?>>
<?php echo $page_top; ?>
<?php echo $page; ?>
<?php echo $scripts; ?>
<?php echo $page_bottom; ?>
</body>
Очень редко могут возникнуть проблемы с контрибом, но как правило это из-за криворукости разработчиков.
Написанное актуально для
Drupal 7
Комментарии
Ptihiy пробуйте копать в сторону https://www.drupal.org/project/nodesymlinks
xandeadx - могут возникать проблемы с темой, если для корректной работы ей нужно загрузить скрипт ДО HTML. Если тема под даной момент не заточена могут быть проблемы
кроме Modernizr я таких скриптов и тем не встречал
Я бы лучше advagg использовал. Там можно настроить что вверху, что внизу.
Вплоть до нормального сжатия в 1 файл.
А зачем это переводить в подвал ? не пойму, лень писать нормальный js или ?
это и есть "нормальный js"
advagg как по мне глючный. У меня хостинг сжатие делает. Вместе с базовым друпала конфетка получилась
C advagg вы что-то не так делаете. За всё время - ни одной проблемы не было :). Всегда идеально сжато 2 файла 1- CSS(в шапке) и 1- JS(подвал) без мусора. Ну иногда ещё 1 JS в шапке (если так требуется). Сжатие хостингом - совсем другая песня.
По официальной документации Google, именно так и должны подключаться js скрипты.
Добавлю, что если нужно вывести свой js в футере можно сделать так
drupal_add_js('example.js', array('scope'=>'footer'));
Advagg, кстати, уже достаточно стабилен. Куча опций есть, к тому же компрессия есть, cdn, и прочие. И в качестве экспериментальной версии (в dev) вынос в подвал также css. Ну а для мелких сайтов можно попробовать, спасибо.
А можно таким же способом переместит CSS файлы(
<?php echo $styles; ?>
) в конец html ?можно, только зачем
если честно, и сам не знаю, но googl PageSpeed просит )
Существует ли способ асинхронной загрузки js? Если, предположим, в теме подключить только один скрипт, который после загрузки будет последовательно подгружать остальные. Как это может отразиться на системе кэширования?
кэширования чего?
Спасибо за заметочку а то замучился три дня не мог понять почему не работают скрипты. Купил просто html шаблон и надо натянуть на drupal 7. В шаблоне были скрипты подключаемые перед закрытием body и не срабатывали.
Оказалось что библиотека jquery была устаревшей. Обновил с помощью модуля jquery-update перенес по вашему совету скрипты вниз и все заработало.
УРА
Сделал все, как пишет автор. Перестает работать текстовый редактор. Что нужно сделать, чтобы скрипты были внизу и работал текстовый редактор?
Насчет редактора - прошло уже сколько лет и сколько они написали что пофиксили - никакого результата, я намучался и так и не поставил ничего снизу :(
BxSlider не работает, если скрипты перенести вниз. Сейчас бьюсь с этой проблемой...
Нет, BxSlider работает, извинения...
если скрипты в футере - не работает views infinity scroll
Добавить комментарий