Magento 2: Wie überschreibe ich die HTML-Datei der Mini-Cart-Standardvorlage?

12

Wie überschreibe ich eine /var/www/html/magento2/vendor/magento/module-checkout/view/frontend/web/template/minicart/content.htmlDatei in unserem benutzerdefinierten Design?

Rakesh Jesadiya
quelle

Antworten:

16

Zuerst müssen wir Web- / Vorlagendateien in unsere Magento-Themendatei überschreiben, in meinem Fall content.html

Magento_Checkout/web/template/minicart/content.html

Nach Änderungen in der content.htmlDatei müssen wir die statische Datei mit dem Befehl bereitstellenphp bin/magento setup:static-content:deploy

ODER

Sie müssen die Datei content.html (ich muss den Inhalt in dieser Datei ändern) aus der Datei löschen pub/static/frontend/Magento/buytea/en_US/Magento_Checkout/template/minicartund die Seite erneut laden.

Änderungen werden übernommen.

Rakesh Jesadiya
quelle
1
Versuch, die Homepage zu überschreiben. Aber nicht funktioniert
Ankit Shah
Welche
Ich habe unten Ordnerstruktur magento2 |_ app |_ design |_ frontend |_ Magento |_luma |_Magento_Theme |_templates |_root.phtml composer.json registration.php theme.xml& verweise magento.stackexchange.com/questions/138223/…
Ankit Shah
Sie müssen Ihr benutzerdefiniertes Thema definieren, innerhalb von Luma funktioniert es nicht. Wenn Sie Änderungen innerhalb des Luma-Themas vornehmen möchten, gehen Sie zu Ihrem Anbieter / Magento / Theme-Frontend-Luma
Rakesh Jesadiya
Ich möchte das Luma-Thema überschreiben. Kannst du das nicht?
Ankit Shah
10

Es geht auch anders. Wir sollten wissen, dass wir die HTML-Vorlage über RequireJS überschreiben können. Wir müssen kein benutzerdefiniertes Thema erstellen . Erstellen Sie in Ihrem benutzerdefinierten Modul Folgendes requirejs-config.js:

app / code / {Vendor} / {Module_Name} /view/frontend/requirejs-config.js

var config = {
    map: {
        '*': {
            'Magento_Checkout/template/minicart/content.html':
                'Vendor_ModuleName/template/minicart/content.html'
        }
    }
};

Weitere Erklärungen können wir hier lesen .

Khoa TruongDinh
quelle
Hallo. Wenn ich auf content.htmldiese Weise überschreibe , warum ist es dann leer? Minicart.
Chirag
Gibt es diese Datei Vendor_ModuleName/template/minicart/content.htmlin pub/static?
Khoa TruongDinh
ja .. und auch mein Konfigurationscode in requirejs-config.jsist verfügbar
Chirag
Wenn ich die Konsole sehe, nimmt sie auch meine Datei anstelle des Kerns. aber ich weiß nicht warum es nichts anzeigt.
Chirag
Sie haben versucht, Ihren Browser-Cache zu leeren?
Khoa TruongDinh
7

Sie können dies überschreiben, indem Sie diesen Ordner zu Ihrem Thema hinzufügen:

Magento_Checkout/web/template/minicart

In diesem Ordner können Sie die Datei content.html erstellen. Stellen Sie nach einer Änderung in dieser Datei sicher, dass Sie Ihren Browser-Cache leeren, um die Änderungen anzuzeigen.

Silvan
quelle
Ich habe das gleiche versucht, Sie schlagen dies vor, aber es funktioniert nicht.
Rakesh Jesadiya
Haben Sie statische Dateien bereitgestellt? Und Cache geleert?
Silvan
1
Ja, es funktioniert einwandfrei nach dem Löschen statischer Dateien und generiert beim Laden der nächsten Seite automatisch eine neue Datei.
Rakesh Jesadiya
0

Obwohl die Antwort von Khoa TruongDinh wirklich hilfreich war, fehlen einige Details. Hier ist ein vollständiges Beispiel:

Kopieren Sie die HTML-Vorlage in ein funktionierendes Minicart-Beispiel nach:

[theme_path]/Magento_Theme/web/template/minicart/content.html

und in Themen erfordernjs-config.js =>

var config = {
    "map": {
        "*": {
            'Magento_Checkout/template/minicart/content.html': 'Magento_Theme/template/minicart/content.html'
        }
    }
};

Siehe auch Kernfehler: https://github.com/magento/magento2/issues/5832

OZZIE
quelle
-1

Datei zum Ändern des Minicart-Inhalts öffnen:

/app/design/frontend/your_theme/Theme/Magento_Checkout/web/template/minicart/content.html

Datei zum Ändern des Inhalts von Minicart-Produkten öffnen:

/app/design/frontend/Eglo/Theme/Magento_Checkout/web/template/minicart/item/default.html

Nach der Änderung müssen Sie das Thema mithilfe von bereitstellen, bin/magento setup:static-content:deploydann wird es angezeigt.

Wenn die Änderung nicht ausgefüllt ist, ändern Sie die Tempaltes im folgenden Verzeichnis, um Laufzeitänderungen anzuzeigen:

/pub/static/frontend/Your_theme/Theme/en_US/Magento_Checkout/template/minicart
Abhinav Singh
quelle
Sie sollten nichts in pub / static ändern. Es wird sowieso durch den statischen Bereitstellungsbefehl überschrieben ...
OZZIE