Wiem, jak używać require-config.js
niestandardowego motywu, ale chciałbym używać niestandardowego pliku javascript ( myfile.js
) na wszystkich stronach. W którym katalogu powinienem dodać require-config.js
i jak go używać, aby działał tak, jak powinien?
Proszę nie odwoływać się do oficjalnej strony Magento.
magento2
javascript
requirejs
Anitr
źródło
źródło
Odpowiedzi:
requirejs-config.js
używa do tworzenia mapowania zasobów JavaScript . Możemy znaleźć wszystkie wymagają configs pod adresem:pub/static/_requirejs
.O ile mi wiadomo, poprawny sposób ładowania naszego niestandardowego skryptu za pomocą Require Js: użycie szablonu do wywołania naszego skryptu . Stworzymy nowy szablon z
Magento\Framework\View\Element\Template
jego klasą bloków.Jeśli chcemy, aby załadować pliki js na wszystkich stronach i nie chcesz, aby utworzyć nowy moduł, nasz blok powinien odwoływać się do
before.body.end
lubafter.body.start container
wdefault.xml
- moduł Theme Magento.app / design / frontend / Vendor / Theme / Magento_Theme / layout / default.xml
app / design / frontend / Vendor / Theme / Requjs-config.js
app / design / frontend / Vendor / Theme / Magento_Theme / web / js / Customcript.js
Nasz szablon wywoła nasz skrypt: app / design / frontend / Vendor / Theme / Magento_Theme / templates / custom_js.phtml
Wyczyść pamięć podręczną Magento i uruchom wdrażanie zawartości statycznej:
php bin/magento setup:static-content:deploy
źródło
\app\design\frontend\Enim\blank\Magento_CatalogWidget\templates\product\widget\content\grid.phtml
, ale w katalogu Theme mam skrypt Requjs-config.js i skrypt (app / design / frontend / Vendor / Theme / Requjs-config.js). Czy to jest ok? Problem polega na tym, że dzwonię do mojego skryptu z wielu różnych miejsc.templates\product\widget\content\grid.phtml
wywołanie szablonu .custom_js.phtml
jest traktowana jako zwykłe wywołanie zwrotne, wykonywane po wykonaniu zawartego w niej koducustomscript.js
? A może powinienem wykonać kod zadeklarowanycustomscript.js
z wewnątrz funkcji wcustom_js.phtml
?after.body.start
należy się zmienićbefore.body.end
?Plik Requirejs-config: app / code / Vendor / Module / view / frontend / Requjs-config.js
Twój plik js powinien znajdować się w: app / code / Vendor / Module / view / frontend / web / js / myfile.js
Teraz możesz użyć dowolnego miejsca w pliku szablonu, korzystając z poniższej metody:
źródło
Dostępna jest łatwiejsza wersja
deps
. Zależności w pliku wymagań.js-config.js załadują plik podczas ładowania samego pliku wymagań (wszędzie w sklepie). Oto przykład, jak powinien wyglądać plik Requjs-config.js :źródło
Jako alternatywne podejście do rekomendacji Khoa, która jest doskonałą praktyką programistyczną Magento, możesz wkleić JavaScript w pliku .phtml w następujący sposób:
Następnie połącz swój plik phtml z pliku default.xml zgodnie z opisem w odpowiedzi Khoa, chociaż polecam dodać go do pliku before.body.end. Następnie wywołaj skrypt JS z poziomu copyright.phtml , w ten sposób:
copyright.phtml jest ładowany na każdej stronie, nawet na stronach takich jak kasa, gdzie stopka jest pomijana.
źródło