Ich weiß, wie man require-config.js
ein benutzerdefiniertes Thema verwendet, aber ich möchte myfile.js
auf allen Seiten eine benutzerdefinierte Javascript-Datei ( ) verwenden. In welchem Verzeichnis soll ich hinzufügen require-config.js
und wie man es benutzt, damit es so funktioniert, wie es sollte?
Bitte verweisen Sie nicht auf die offizielle Magento-Seite.
magento2
javascript
requirejs
Anitr
quelle
quelle
Antworten:
requirejs-config.js
wird zum Erstellen der JavaScript-Ressourcenzuordnung verwendet . Wir finden alle erforderlichen Konfigurationen unter :pub/static/_requirejs
.Soweit ich weiß, der richtige Weg, um unser benutzerdefiniertes Skript über Require Js zu laden: Verwenden Sie die Vorlage, um unser Skript aufzurufen . Wir werden eine neue Vorlage mit
Magento\Framework\View\Element\Template
ihrer Blockklasse erstellen .Wenn wir js-Dateien auf allen Seiten laden und kein neues Modul erstellen möchten, sollte unser Block auf
before.body.end
oderafter.body.start container
indefault.xml
- Magento Theme-Modul verweisen .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 / customcript.js
Unsere Vorlage ruft unser Skript auf: app / design / frontend / Vendor / Theme / Magento_Theme / templates / custom_js.phtml
Löschen Sie den Magento-Cache und führen Sie die Bereitstellung statischer Inhalte aus:
php bin/magento setup:static-content:deploy
quelle
\app\design\frontend\Enim\blank\Magento_CatalogWidget\templates\product\widget\content\grid.phtml
, habe aber requirejs-config.js und ein Skript im Theme-Ordner (app / design / frontend / Vendor / Theme / requirejs-config.js). Ist das ok? Das Problem ist, dass ich mein Skript von mehreren verschiedenen Orten aus aufrufe.templates\product\widget\content\grid.phtml
aufgerufen wird.custom_js.phtml
als regulärer Rückruf behandelt wird, der nach Ausführung des darin enthaltenen Codes ausgeführt wirdcustomscript.js
? Oder muss ich den in deklarierten Codecustomscript.js
innerhalb der Funktion in ausführencustom_js.phtml
?after.body.start
geändert werden solltenbefore.body.end
?Requirejs-config-Datei: app / code / Vendor / Module / view / frontend / requirejs-config.js
Ihre js-Datei sollte sich befinden in: app / code / Vendor / Module / view / frontend / web / js / myfile.js
Jetzt können Sie eine beliebige Stelle in Ihrer Vorlagendatei mit der folgenden Methode verwenden:
quelle
Es gibt eine einfachere Version mit
deps
. Abhängigkeiten in der Datei requirejs-config.js laden Ihre Datei beim Laden von requirejs selbst (überall im Shop). Hier ist ein Beispiel dafür, wie Ihre requirejs-config.js aussehen sollte:quelle
Als alternativen Ansatz zu Khoas Empfehlung, die eine hervorragende Magento-Entwicklungspraxis darstellt, können Sie Ihr JavaScript in eine .phtml-Datei wie folgt einfügen:
Verknüpfen Sie dann Ihre HTML-Datei aus default.xml wie in Khoas Antwort beschrieben, obwohl ich empfehlen würde, sie zu before.body.end hinzuzufügen. Rufen Sie dann Ihr JS-Skript in der Datei copyright.phtml folgendermaßen auf :
copyright.phtml wird auf jeder Seite geladen, auch auf Seiten wie der Kasse, auf denen die Fußzeile weggelassen wird.
quelle