Die Eigenschaft 'section loadurl' von undefined kann nicht gelesen werden

7

Ich erhalte diesen Fehler auf dem Firebug beim Laden der Homepage. Aufgrund dieses Fehlers werden die Seiten nicht vollständig geladen. nur die Kopf-, Navigations- und Fußzeile und Anzeige. Die Hauptinhaltsabschnitte werden nicht angezeigt.

Viel versucht, den Fehler zu debuggen, aber nicht erfolgreich. Irgendeine Hilfe ??

Geben Sie hier die Bildbeschreibung ein

Google Chrome-Konsolenfehler

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Zammuuz
quelle
Haben Sie versuchtstatic-content deploy
Murtuza Zabuawala
1
@ MurtuzaZabuawala: Ja ... aber hat nicht funktioniert
Zammuuz
Bitte lassen Sie mich wissen, welchen Befehl Sie für die Bereitstellung verwendet haben. Geben Sie den vollständigen Befehl ein.
Rakesh Jesadiya
@RakeshJesadiya: Hallo, ich habe diesen Befehl verwendet. Fehler: 0
Zammuuz
Bitte führen Sie den Befehl C: \ wamp \ bin \ php \ php5.6.30> php C: \ wamp \ www \ magento \ bin \ magento aus. Setup: statischer Inhalt: Bereitstellen von en_US en_GB Lassen Sie es mich wissen, nachdem Sie diesen Befehl ausgeführt haben.
Rakesh Jesadiya

Antworten:

6

Die Daten, auf die Code verweist ( sectionLoadUrl), werden normalerweise im folgenden Snippet festgelegt, das sich auf jeder Magento-Front-End-Seite befinden sollte (sollte)

<script type="text/x-magento-init">
{"*":{"Magento_Customer\/js\/customer-data":{"sectionLoadUrl":"http:\/\/magento-2-1-4.dev\/customer\/section\/load\/","cookieLifeTime":"3600","updateSessionUrl":"http:\/\/magento-2-1-4.dev\/customer\/account\/updateSession\/"}}}    
</script>

Entweder hat etwas in Ihrem System dieses Snippet entfernt, oder Sie rufen die Funktionalität auf, Magento_Customer/js/customer-databevor das Snippet ausgeführt werden konnte.

Alan Storm
quelle
1
Wenn Sie dies in der Datei footer.phtml verwenden, benötigen Sie (['Magento_Customer / js / customer-data'], Funktion (customerData) {var section = ['cart']; customerData.invalidate (Abschnitte); customerData.reload (Abschnitte, true );}); Und Fehler wie oben bekommen. Wie kann man das lösen?
Magecode
@Magecode Du solltest das wahrscheinlich als neue Frage mit mehr Details und nicht als Kommentar posten.
Alan Storm
Es ist möglich, dass dies ein Beispiel für dieses Problem ist: github.com/magento/magento2/pull/12314
Scott Buchanan
@Magecode könnten Sie diesen Fehler beheben?
bpoiss
3

Ich habe es behoben, indem ich folgenden Code hinzugefügt habe <Magento_directry>/app/design/frontend/<Vendor>/<theme>/Magento_Theme/layout/default.xml

  <referenceContainer name="content">
        <block name="customer.section.config" class="Magento\Customer\Block\SectionConfig"
               template="Magento_Customer::js/section-config.phtml"/>
        <block name="customer.customer.data"
               class="Magento\Customer\Block\CustomerData"
               template="Magento_Customer::js/customer-data.phtml"/>
    </referenceContainer>
Nadeem0035
quelle
1

Überprüfen Sie Ihre benutzerdefinierten Modulmodelldateien, wenn Sie einige installiert haben. Es muss ein Tippfehler vorliegen. Ich hatte das gleiche Problem und für mich funktioniert es so, wie ich mich im Namespace-Pfad geirrt habe. Aufgrund dieses Tippfehlers wurde auf allen Seiten derselbe JS-Fehler generiert. Wenn nicht, entfernen Sie den Modul-Kunden aus dem Pub und versuchen Sie erneut, das Thema bereitzustellen

Shubham Mathur
quelle
Hallo, ich habe meine Frage mit einem neuen Bild von der Chrome-Konsole aktualisiert. Es zeigt, dass sectionLoadUrl in options.sectionLoadUrl in Magento / Customer / view / frontend / web / js / customer-data.js undefiniert ist. Haben Sie eine Idee, wie Sie dies beheben können?
Zammuuz
Ich habe keine benutzerdefinierten Modulmodelldateien. Trotzdem habe ich die Namespaces meiner benutzerdefinierten Modulblockdateien doppelt überprüft. Dies funktionierte gut bis zum Morgen. Ich habe einige Stiländerungen an meinen CMS-Seiten und meiner Fußzeile vorgenommen. :(
Danach wird
Können Sie bitte die Änderungen erklären, die Sie auf der CMS-Seite vorgenommen haben?
Shubham Mathur
Können Sie mir bitte die vollständige rechte Seite des von Ihnen angehängten Chrome-Screenshots senden? Ich kann die URL nicht sehen, wo es Fehler in der Pub-Datei erzeugt
Shubham Mathur
Ich habe das Chrome-Fehlerbild aktualisiert. Der Fehler tritt in der Datei customer-data.js auf. Die Änderungen, die ich bisher vorgenommen habe, sind 1) erstelltes benutzerdefiniertes Thema mit benutzerdefiniertem Header, Navigationsmenü, benutzerdefiniertem Store-Umschalter in Header, benutzerdefinierter Fußzeile. das ist es.
Zammuuz
1

Ich habe es gelöst und das default.xmlaus meinem Thema entfernt Magento_Customer.

app/design/frontend/Theme/Name/Magento_Customer/layout/default.xml

Ich denke, dieses benutzerdefinierte Modul wird vor dem Snipped geladen und der urlfor- ajaxAufruf ist nicht definiert.

Enrique Barchiesi
quelle
0

In unserem Fall war dies ein bisschen Code in einer Standardvorlage, die die Datei customer-data.js lud, nachdem sie bereits auf der Erfolgsseite aufgerufen worden war.

Wir haben Datei gefunden: vendor/magento/module-checkout/view/frontend/templates/success.phtml

hat diesen Code geladen:

<script>
    require([
        'Magento_Customer/js/customer-data'
    ], function (customerData) {
        var sections = ['cart'];
        customerData.invalidate(sections);
        customerData.reload(sections, true);
    });
</script>

Durch das Entfernen dieses Codes wurde das Problem behoben. Dazu haben wir eine Kopie dieser Datei in unserem Verzeichnis für Designvorlagen erstellt und das fehlerhafte Codefragment entfernt.

Sie können die Chrome Dev-Tools verwenden, um herauszufinden, wo der Fehler aufgetreten ist, und dann kurz zuvor in dieser Datei auf Ihrem lokalen Entwickler einen console.trace();Aufruf hinzufügen , um festzustellen, was die Funktion aufgerufen hat, die den Fehler in der Konsole auslöst. Folgen Sie der Kette bis zu dem Punkt, an dem Sie die Dinge nicht ordnungsgemäß laden.

Joshua Fricke
quelle
0

Dies wurde mithilfe des Fensters beim Laden behoben:

    <script type="text/javascript">
require([
        'jquery'
    ],
    function($) {
        $(window).on("load", function() {
            require([
                'Magento_Checkout/js/model/cart/totals-processor/default',
                'Magento_Customer/js/customer-data',
                'Magento_Checkout/js/model/quote',
                'Magento_Checkout/js/model/shipping-rate-processor/new-address',
                'Magento_Checkout/js/model/shipping-rate-processor/customer-address',
                'Magento_Checkout/js/model/shipping-rate-registry'
            ], function(defaultTotal, customerData, quote, defaultProcessor, customerAddressProcessor, rateRegistry) {
                $(document).ready(function() {

                    /** Do your code here */
                });

            });
        });
    });
</script>
Ravi Soni
quelle
Es ruft zweimal an und wenn ich auf eine zusätzliche Gebührentaste klicke, wird es zweimal gesendet.
Gajjala Sandeep
0

Ich hatte zuvor den "Inhalts" -Container aus theme.xml entfernt und ihn behoben, indem ich der theme.xml folgenden Code hinzufügte :

<referenceContainer name="content">
    <block name="customer.section.config" class="Magento\Customer\Block\SectionConfig"
           template="Magento_Customer::js/section-config.phtml"/>
    <block name="customer.customer.data"
           class="Magento\Customer\Block\CustomerData"
           template="Magento_Customer::js/customer-data.phtml"/>
</referenceContainer>
Humaz Miraj
quelle
0

Ich habe den Inhaltsblock entfernt, der diesen Fehler verursacht hat:

<referenceBlock name="content" display="false"/>

Sie können es besser mit CSS ausblenden und nicht in Ihrer XML entfernen

  .cms-index-index {
    .column.main {
      display: none;
    }
  }
Vince Verhoeven
quelle