У меня есть определенный файл fancybox.js, который я хочу загрузить в конце всех файлов JS, включенных в мой local.xml
Если порядок загрузки может быть изменен, то как файл JS может быть загружен (включен) в конце?
Спасибо.
Вы можете отсортировать порядок skin
или js
файлы в layout.xml, используя элемент params с атрибутом name, как показано в следующем ответе :
<action method="addJs"><!-- this will be shown second -->
<script>prototype/javascript1.js</script>
<params><![CDATA[name="js002_second"]]></params>
</action>
<action method="addJs"><!-- this will be shown first -->
<script>prototype/javascript2.js</script>
<params><![CDATA[name="js001_first"]]></params>
</action>
<params><![CDATA[name="zjs_last"]]></params>
и посмотрите, что происходит (я не уверен на 100%). Сообщите, если это не загружает его после всех остальных.Я не думаю, что вы можете указать порядок сортировки для js-файлов, которые вы добавляете(очевидно, вы можете увидеть ответ, предоставленный @zigojacko), но я думаю, что вы можете сделать это немного по-другому, купив добавление дочернего блока вhead
блок.Все дочерние
head
элементы блока отображаются после элементов js и css.Вот что вам нужно.
Добавьте это в один из ваших файлов макета.
Затем создайте файл
app/design/frontend/{package}/{theme}/template/fancybox/fancybox.phtml
со следующим содержанием.источник
Я знаю, что этот вопрос старый, но вот простой способ упорядочить файлы ресурсов с помощью простого пользовательского модуля (протестировано):
Создайте
и вставьте:
создать
app/code/local/Company/ReorderAssets/etc/config.xml
и вставить:создать
ReorderAssets/Block/Page/Html/Head.php
и вставить:Здесь мы создаем наши функции
addItemFirst
иaddItemAfter
которые могут быть использованы , как это (внутри любого layout.xml).Пример layout.xml:
Пожалуйста, обратите внимание на skin_js внутри вашего пути.
Отдельное спасибо Koncz Szabolcs.
источник