Motyw „pustego” Magento 2 obejmuje następującą hierarchię znaczników.
<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>
Po co tu jest. tj. co jest wykluczone z czego? Gdzie i kiedy kod systemu Magento 2 uzyskuje dostęp do tych informacji?
Odpowiedzi:
Magento 2 obsługuje pakowanie plików js / html.
<exclude>
węzeł definiuje listę zasobów, które nie powinny być wiązane. zobacz\Magento\Framework\View\Asset\Bundle\Manager
szczegółyźródło
Dostęp do tej konfiguracji uzyskuje się po wykonaniu polecenia
W funkcji
\Magento\Deploy\Model\Deployer::deployFile
interesujące są następujące dwa połączenia:Pierwsze wywołanie doda plik zasobów do systemu plików. Nie jestem pewien, co dokładnie robi drugie połączenie. Tam się gubię.
Jeśli jednak podążasz za tym drugim wywołaniem, znajdziesz kilka funkcji sprawdzania poprawności, które ostatecznie prowadzą do
Ale tutaj jest kilka problemów.
Po pierwsze, funkcja
\Magento\Framework\Config\View::getItems
zawsze wydaje pustą tablicę.Po drugie, funkcja
\Magento\Framework\View\Asset\Bundle\Manager::isExcludedFile
zawsze powrócifalse
Ponieważ
$asset->getSourceFile()
jest to ścieżka bezwzględna do pliku zasobów, natomiast$filePathInfo['excludedPath']
ścieżka względna.O ile widzę,
<exclude>
konfiguracja i tak nie będzie działać. Ale jeśli to zadziała, aktywa zostaną wyłączone z\Magento\Framework\View\Asset\Bundle
.źródło