Je sais comment utiliser require-config.js
un thème personnalisé, mais je voudrais utiliser un fichier javascript personnalisé ( myfile.js
) sur toutes les pages. Dans quel répertoire dois-je ajouter require-config.js
et comment l'utiliser pour qu'il fonctionne comme il se doit?
S'il vous plaît, ne faites pas référence à la page officielle de Magento.
magento2
javascript
requirejs
Anitr
la source
la source
Réponses:
requirejs-config.js
utilise pour créer le mappage des ressources JavaScript . Nous pouvons trouver tous besoin configs sous:pub/static/_requirejs
.Pour autant que je sache, la bonne façon de charger notre script personnalisé via Require Js: en utilisant un modèle pour appeler notre script . Nous allons créer un nouveau modèle avec
Magento\Framework\View\Element\Template
sa classe de blocs.Si nous voulons charger des fichiers js sur toutes les pages et ne voulons pas créer un nouveau module, notre bloc doit faire référence à
before.body.end
ouafter.body.start container
dansdefault.xml
- le module Thème Magento.app / design / frontend / Vendor / Theme / Magento_Theme / layout / default.xml
app / design / frontend / Vendor / Theme / requirejs-config.js
app / design / frontend / Vendor / Theme / Magento_Theme / web / js / douanecript.js
Notre modèle appellera notre script: app / design / frontend / Vendor / Theme / Magento_Theme / templates / custom_js.phtml
Vider le cache Magento et exécuter le déploiement de contenu statique:
php bin/magento setup:static-content:deploy
la source
\app\design\frontend\Enim\blank\Magento_CatalogWidget\templates\product\widget\content\grid.phtml
, mais j'ai requirejs-config.js et le script dans le dossier Theme (app / design / frontend / Vendor / Theme / requirejs-config.js). Est-ce correct? Le problème est que j'appelle mon script à partir de plusieurs endroits différents.templates\product\widget\content\grid.phtml
est appelé.custom_js.phtml
est traitée comme un rappel régulier, effectué après l'exécution du code contenu danscustomscript.js
? Ou aurais-je besoin d'exécuter le code déclaré danscustomscript.js
depuis la fonction danscustom_js.phtml
?after.body.start
devrait être changé enbefore.body.end
?Fichier Requirejs-config: app / code / Vendor / Module / view / frontend / requirejs-config.js
Votre fichier js doit être dans: app / code / Vendor / Module / view / frontend / web / js / myfile.js
Vous pouvez maintenant utiliser n'importe où dans votre fichier modèle par la méthode ci-dessous:
la source
Il existe une version plus facile à utiliser
deps
. Les dépendances dans le requirejs-config.js chargeront votre fichier lors du chargement de requirejs lui-même (partout dans la boutique). Voici un exemple de l' apparence de votre requirejs-config.js :la source
Comme approche alternative à la recommandation de Khoa, qui est une excellente pratique de développement Magento, vous pouvez coller votre JavaScript dans un fichier .phtml comme ceci:
Ensuite, liez votre fichier phtml à partir de default.xml comme décrit dans la réponse de Khoa, bien que je recommande de l'ajouter à before.body.end. Et puis appelez votre script JS à partir de copyright.phtml , comme ceci:
copyright.phtml est chargé sur chaque page, même sur des pages comme la caisse, où le pied de page est omis.
la source