«Пустая» тема Magento 2 включает следующую иерархию тегов.
<exclude>
<item type="file">Lib::jquery/jquery-ui-1.9.2.js</item>
<item type="file">Lib::jquery/jquery.ba-hashchange.min.js</item>
<item type="file">Lib::jquery/jquery.details.js</item>
<item type="file">Lib::jquery/jquery.details.min.js</item>
<item type="file">Lib::jquery/jquery.hoverIntent.js</item>
<item type="file">Lib::jquery/jquery.min.js</item>
<item type="file">Lib::mage/captcha.js</item>
<item type="file">Lib::mage/dropdown_old.js</item>
<item type="file">Lib::mage/list.js</item>
<item type="file">Lib::mage/loader_old.js</item>
<item type="file">Lib::mage/webapi.js</item>
<item type="file">Lib::moment.js</item>
<item type="file">Lib::requirejs/require.js</item>
<item type="file">Lib::date-format-normalizer.js</item>
<item type="file">Lib::legacy-build.min.js</item>
<item type="directory">Lib::modernizr</item>
<item type="directory">Lib::tiny_mce</item>
<item type="directory">Lib::varien</item>
<item type="directory">Lib::jquery/editableMultiselect</item>
<item type="directory">Lib::jquery/jstree</item>
<item type="directory">Lib::jquery/fileUploader</item>
<item type="directory">Lib::css</item>
<item type="directory">Lib::lib</item>
<item type="directory">Lib::extjs</item>
<item type="directory">Lib::prototype</item>
<item type="directory">Lib::scriptaculous</item>
<item type="directory">Lib::mage/requirejs</item>
<item type="directory">Lib::mage/adminhtml</item>
<item type="directory">Lib::mage/backend</item>
<item type="directory">Magento_Swagger::swagger-ui</item>
</exclude>
Для чего это здесь. то есть что исключено из чего? Где и когда системный код Magento 2 получает доступ к этой информации?
Ответы:
Magento 2 поддерживает пакетирование файлов js / html.
<exclude>
узел определяет список ресурсов, которые не должны быть связаны. смотрите\Magento\Framework\View\Asset\Bundle\Manager
для деталейисточник
Эта конфигурация доступна при выполнении команды
В функции
\Magento\Deploy\Model\Deployer::deployFile
интерес представляют следующие два вызова:Первый вызов добавит файл ресурсов в файловую систему. Я не уверен, что именно делает второй звонок. Вот где я заблудился.
Однако, если вы выполните этот второй вызов, вы найдете некоторые функции проверки, которые в конечном итоге приводят к
Но здесь есть несколько вопросов.
Во-первых,
\Magento\Framework\Config\View::getItems
кажется , что функция всегда возвращает пустой массив.Во-вторых, функция
\Magento\Framework\View\Asset\Bundle\Manager::isExcludedFile
всегда вернетfalse
Так как
$asset->getSourceFile()
это абсолютный путь к файлу ресурса, а$filePathInfo['excludedPath']
это относительный путь.Итак, насколько я вижу,
<exclude>
конфигурация не будет работать в любом случае. Но если это сработает, актив будет исключен из\Magento\Framework\View\Asset\Bundle
.источник