Hallo, ich bin neu in Magento2 und versuche herauszufinden, wie RequireJS in Magento funktioniert.
Hier ist meine Situation:
Ich habe folgendes Modul:
app/code/Mymodule/Test/view/frontend/requirejs-config.js
Hier ist der Inhalt dieser Datei:
var config = {
map: {
'*': {
jQuery110: "Mymodule_Test/js/jquery-1.10.2",
jqueryNoConflict: 'Mymodule_Test/js/jquery.no-conflict',
flexslider: 'Mymodule_Test/js/jquery.flexslider-min',
header: 'Mymodule_Test/js/store/header'
}
}
};
Mein Thema ist an diesem Ort:
app/design/frontend/Mycompany/Basic
Meine Javascripts befinden sich an folgendem Ort:
app/code/Mymodule/Test/view/frontend/web/js/jquery.no-conflict.js
app/code/Mymodule/Test/view/frontend/web/js/jquery.flexslider-min.js
app/code/Mymodule/Test/view/frontend/web/js/store/header.js
In der PHTML-Datei:
app/code/Mymodule/Test/view/frontend/templates/home.phtml
Ich habe die Zeilen hinzugefügt:
require(['jqueryNoConflict', 'flexslider'],function($, flexslider){
(function($) {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
Wenn ich meine Seite im Browser überprüfe, erhalte ich 404-Fehler mit Pfaden:
http://mag2.com.local/pub/static/frontend/Mycompany/Basic/en_US/flexslider.js
Aber wenn ich die require [] -Zeile so ändere:
require(['Mymodule_Test/js/jquery.no-conflict', 'Mymodule_Test/js/jquery.flexslider-min'],function($, flexslider){
(function() {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
Die Dateien werden geladen.
Ich habe auch den Cache geleert, mein Theme ist korrekt, ich habe den Befehl ausgeführt:
php bin/magento setup:static-content:deploy
Ich kann also nicht herausfinden, warum meine requirejs-config.js nicht geladen wird. Ich habe auch die Dokumentation befolgt.
Bitte helfen Sie
Antworten:
Ich habe das Problem gefunden.
Löschen Sie unter pub / static / _requirejs / frontend / Namespace / Theme / de_DE die Datei requirejs-config.js .
Aktualisieren Sie Ihre Seite und sie wird erneut mit neuen Inhalten generiert.
Wenn es nicht funktioniert, löschen Sie die Datei requirejs-config.js und führen Sie die folgenden Befehle aus:
quelle
Das Problem ist, dass Sie den Entwicklermodus nicht aktiviert haben. Folglich befindet sich der Dateicache im
pub/static
Ordner.quelle
Nach dem Befehl Bereitstellen müssen Sie den Entwicklermodus festlegen und den Cache löschen. Es funktioniert gut.
Löschen Sie auch den Browser-Cache, um den Effekt zu sehen.
quelle
Dies kann jemand anderem bei einem sehr ähnlichen lokalen Problem mit Nginx helfen. Der / static-Block wurde nicht korrekt überschrieben und musste gemäß diesem Kommentar hinzugefügt werden: https://github.com/magento/magento2/issues/7869#issuecomment-268585438
quelle
Bitte stellen Sie sicher, dass die
.htacess
Datei impub/static
Ordner vorhanden ist. und wenden Sie dann den Befehl deploy an.quelle
Sie können die folgenden Schritte ausführen und es wird behoben.
1) Setze den Bereitstellungsmodus auf produktiv - php magento deploy: mode: setze produktiv (die Js- und CSS-Minimierung funktioniert mit dem Produktionsmodus. Wenn Sie sich im Entwicklermodus befinden und der Code minimiert ist, werden die oben genannten Probleme so angezeigt, wie ich es erlebt habe. Wenn die Minimierung deaktiviert ist kann den Entwicklermodus beibehalten. Überprüfen Sie auch mit Echo des print_r ($ _ SERVER) in der index.php, ob der Produktionsmodus oder der Entwicklermodus vor dem Laden der Website korrekt eingestellt wurde.
2) Löschen Sie alle im Server eingerichteten Caches
3) Leeren Sie den Browser-Cache und zeigen Sie ihn im Inkognito-Modus an. Das ist es!
Prost!
quelle