Come includere le risorse statiche (JavaScript, CSS, fonts) in Magento 2

Come per la versione 1, anche per Magento 2 le risorse statiche vengono aggiunte nelle pagine di layout, nella sezione <head>.
L'esempio di default di layout dove vengono definite le inclusioni di risorse statiche è il file default_head_blocks.xml situato nella cartella app/code/Magento/Theme/view/frontend/layout/ (o vendor/magento/module-theme/view/frontend/layout/).

Il metodo più corretto quindi per aggiungere CSS o JavaScript al nostro tema è estendere proprio il file default_head_blocks.xml, copiandolo nella cartella <theme_dir>/Magento_Theme/layout. Le risorse inserite in questo file saranno disponibili in ogni pagina del nostro sito e-commerce. Volendo invece limitarne il loro utilizzo è necessario caricarli nel file di layout interessato, per esempio nel file catalog_product_view.xml per averlo solo nella pagina di prodotto.

Ma vediamo nello specifico le "istruzioni" (o meglio tag) da inserire nella sezione <head> del nostro file di layout:

<css src="css/my-style.css"/>
<script src="js/my-script.js"/>

Due varianti comunque valide:

  • è possibile usare anche il tag <link> al posto di <css> e <script>; per esempio: <link src="js/my-script.js"/>
  • è possibile specificare il path della risorsa aggiungendo il nome del modulo; per esempio: <script src="WaPoNe_HelloWorld::js/my-script.js"/>

Il percorso alle risorse è specificato relativamente ad una delle seguenti posizioni, nel caso di tema:

  • <theme_dir>/web
  • <theme_dir>/<vendorName>_<moduleName>/web

Nel caso di layout aggiunto/modificato all'interno di un'estensione, la locazione delle risorse è in:

  • <vendorName>_<moduleName>/view/frontend/web

Inoltre è possibile aggiungere risorse esterne grazie all'attributo src_type impostato a url come nell'esempio di caricamento di un font esterno di Google:

<link src="https://fonts.googleapis.com/css?family=Oswald:400,700,300" rel="stylesheet" type="text/css" src_type="url" />

Categoria: