Magento 2 CSS und JavaScript werden nicht aus dem richtigen Ordner geladen

35

Ich hoffe, dass jemand hier helfen kann. Ich versuche, Magento 2 auf WAMP auf einem Windows 7-Computer mit wenig Erfolg zu installieren und auszuführen.

Nachdem ich durch die vielen und verschiedenen Bereiche gesprungen bin, um die Website zum Laden zu bringen, habe ich jetzt 404 Antworten und keine Styles oder Javascript-Ladevorgänge.

Spezifikation ist wie folgt:

  • Magento-CE-2.0.0 + Beispiele
  • Apache 2.4.9
  • PHP 5.5.12
  • MySQL 5.6.17

Wenn ich mir die Browserkonsole ansehe, sind unter den Fehlern Versuche, auf Dateien zuzugreifen, die sich nicht im pub / static-Ordner befinden. Der "Frontend" -Ordner wird geladen und die meisten Dateien sind vorhanden. Ich habe jedoch festgestellt, dass einige CSS-Dateien nicht vorhanden sind.

Beim Ausführen des PHP-Bereitstellungsbefehls

php bin/magento setup:static-content:deploy

Das ist in anderen Beiträgen erwähnt. Ich erhalte den folgenden Fehler. Ich bin nicht sicher, wie ich das beheben soll?

Schwerwiegender Fehler: Zulässige Speichergröße von 134217728 Bytes erschöpft (versucht, 64 Bytes zuzuweisen) in C: \ wamp \ www \ magento \ vendor \ oyejorge \ less.php \ lib \ Less \ Visitor.php in Zeile 45

Jede Hilfe wird sehr geschätzt.

AKTUALISIEREN

Ich habe die PHP-Speicherkapazität erhöht und das PHP-Deploy-Skript erneut ausgeführt. Diesmal hat es keinen Fehler gemacht und vollständig ausgeführt. Es besteht jedoch immer noch das gleiche Problem wie oben beschrieben. Die Site wird geladen, aber jeder Versuch, eine Seite oder ein Asset zu laden, führt zu einem Fehler 404-Seite nicht gefunden, ohne dass ein Stil angewendet wird.

Nachfolgend finden Sie die Fehler in Chrome Inspector

Bildbeschreibung hier eingeben

E.Gain
quelle
@ TejabhagavanKollepara Diese Frage wurde zuerst gestellt, ist wohlgeformt, hat gute Antworten, also ist IMO die andere Frage ein doofer Kandidat, nicht diese ... Übrigens, wenn die Flagge auf der anderen Frage als Duplikat zu dieser abgelehnt wurde Es ist nicht erforderlich, diese Frage als Duplikat der anderen zu kennzeichnen, um dasselbe zu erreichen.
7.
Siehe auch die Antwort von SA - eine neue Magento-Installation befindet sich im "Standard" -Modus (nicht im "Produktions" -Modus) und benötigt nicht den bereitgestellten statischen Inhalt, der in allen anderen Antworten angegeben wird.
Jānis Elmeris

Antworten:

50

LÖSUNG 1 (WENN SIE XML-DATEI BEARBEITEN MÖCHTEN)

Ich möchte Sie Magento 2 Zip zum Download von magentocommerce.com/downloadBeispieldaten, neue db in phpMyAdmin , extrahieren zip in htdocs Ordner. Installieren Sie Magento 2, aber verwenden Sie nicht localhost. Verwenden Sie 127.0.0.1 in der Store-URL und der Admin-URL. Nach erfolgreicher Installation darf Magento NICHT ausgeführt werden.

Jetzt werden wir Caches und Sessions von Magento 2 löschen. Gehen Sie zu den folgenden Pfaden und löschen Sie alles:

ROOT > var > cache > *DELETE ALL*
ROOT > var > page_cache > *DELETE ALL*
ROOT > var > session > *DELETE ALL*

Wenn sich Magento 2 nicht im Produktionsmodus befindet, wird versucht, Symlinks für einige statische Ressourcen auf dem lokalen Server zu erstellen. Wir müssen dieses Verhalten von Magento 2 ändern, indem wir die ROOT > app > etc > di.xmlDatei bearbeiten . Öffnen Sie di.xmlin Ihrem bevorzugten Code-Editor den virtualType name="developerMaterialization"Abschnitt. In diesem Abschnitt finden Sie ein Element, <item name="view_preprocessed" xsi:type="object">das geändert werden muss. Sie können es ändern, indem Sie den folgenden Inhalt ändern:

Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink

Zu:

Magento\Framework\App\View\Asset\MaterializationStrategy\Copy

Jetzt letzten Schritt auch alte Dateien löschen, die in erzeugt wurden ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

LÖSUNG 2

Installieren Sie Composer. Nun möchte Ich mag Sie Magento 2 Zip zum Download von magentocommerce.com/download, neue db in phpMyAdmin , extrahieren zip in htdocs Ordner. Installieren Sie Magento 2, aber verwenden Sie nicht localhost. Verwenden Sie 127.0.0.1 in der Store-URL und der Admin-URL. Nach erfolgreicher Installation darf Magento NICHT ausgeführt werden.

Jetzt werden wir die Composer-Installation überprüfen, statischen Inhalt bereitstellen, den Magento-Cache leeren / leeren und die Magento 2-Blöcke neu indizieren. Um alle oben genannten Aktionen auszuführen, drücken Sie WINDOWS-TASTE + R, um das Dialogfeld AUSFÜHREN zu öffnen, und geben Sie "cmd" ein, um die Eingabeaufforderung zu öffnen.

Geben Sie " cd PATH_TO_YOUR_MAGENTO2_FILES " ein, um in das Magento 2 ROOT-Verzeichnis zu gelangen.

Um die Composer-Installation im obigen Verzeichnis zu überprüfen, geben Sie " composer install " ein.

Wenn Sie in diesem Schritt eine Fehlermeldung erhalten, überprüfen Sie bitte Ihre Composer-Installation

In diesem Schritt richten wir statische Inhalte für die Bereitstellung in unserem Magento-Store ein. Geben Sie dazu " PHP bin / Magento-Setup: Statischer Inhalt: Bereitstellen " ein.

Für diejenigen, die auf Magento 2.2.x sind

php bin/magento setup:static-content:deploy -f

Wenn Sie eine Fehlermeldung erhalten, überprüfen Sie Ihre PHP.EXE- und PHP.INI-Umgebungsvariable

Leeren / Leeren Sie den Magento-Cache, indem Sie in CMD „ php bin / magento cache: flusheingeben .

Und schließlich, um die statischen Blöcke von Magento neu zu indizieren, geben Sie " php bin / magento indexer: reindex " ein.

Sie haben die erfolgreiche Installation von Magento 2 abgeschlossen.

Fayyaz Khattak
quelle
4
Ebenfalls in der php.ini ändern Sie max_execution_time auf 500, memory_limit auf 2048M, post_max_size auf 2048M, upload_max_filesize auf 2048M und max_file_uploads auf 2048.
Fayyaz Khattak
Vielen Dank für Ihre schnelle Antwort. Ich habe diese Änderungen vorgenommen, aber sie hatten keine Auswirkungen. Ich habe den WAMP-Server neu gestartet, nachdem ich die Änderungen vorgenommen habe. Ich habe die Frage bearbeitet, um die Fehler
anzuzeigen,
Oh, es tut mir leid, noch eine Sache zu erwähnen. Löschen Sie zuerst den gesamten Cache und die gesamte Sitzung, nehmen Sie Änderungen in der Datei di.xml vor und löschen Sie auch alles unter ROOT> pub> static> DELETE ALL EXCEPT .HTACCESS
Fayyaz Khattak 14.01.16
1
@MagenX Dies ist die Ansicht eines jeden Menschen, welches Tool er bevorzugen würde. In Ihren Augen kritisieren Sie alles als Hammer, anstatt Ihre Sicht der Lösung zu teilen.
Fayyaz Khattak
1
Lösung Nr. 2 hat wie ein Zauber funktioniert. Vielen Dank, dass Sie mir Stunden, wenn nicht Tage, gespart haben und sich mit diesem Problem befasst haben!
Jonathan Marzullo
11

Sie müssen nur die Datei apache2.conf aktualisieren.

Auf Ubuntu 16.04

  1. Öffnen und bearbeiten Sie die Datei /etc/apache2/apache2.conf
  2. Navigieren Sie zu der Stelle in der Datei apache2.conf <Directory /var/www/>
  3. Wechseln Sie "AllowOverride None"zu"AllowOverride All"
  4. Speicher die Datei
  5. Neustart apache2 -> sudo service apache2 restart
SA
quelle
Es war so schwer, diese Antwort zu finden! Überall sonst schlagen die Leute vor, statischen Inhalt (erneut) bereitzustellen, obwohl sich eine neue Magento-Installation im "Standard" -Modus (nicht im "Produktions" -Modus) befindet und den bereitgestellten statischen Inhalt nicht benötigt.
Jānis Elmeris
10

Wenn Sie nach der Installation in magento2 auf ein Problem mit dem Laden von CSS- und JSS-Seiten stoßen

Bitte folgen Sie den folgenden Schritten:

Öffnen Sie das Terminal und navigieren Sie zum Magento-Webstamm

 $ cd / var / www / html / magento2 

Schritt 1.

 $ php bin / magento setup: static-content: deploy

Schritt 2.

$ php bin / magento indexer: reindex

Schritt 3.

Stellen Sie sicher, dass Apache "rewrite_module" aktiviert ist, und starten Sie den Server neu

Schritt 4.

$ chown -R www-Daten: www-Daten / var / www / html / magento2 

Schritt 5.

 $ chmod -R 777 / var / www / html / magento2 

Schritt 6.

Cache-Ordner unter var / cache löschen

Der obige Schritt funktioniert. Ich hoffe, dass dies auch für Sie funktioniert.

Lassen Sie mich wissen, wenn ein Problem vorliegt. :)

http://gotechnies.com/css-javascript-files-loading-magento-2-installation/

Arvind
quelle
1
Wie werden diese Befehle in Windows ausgeführt?
Hassan ALi
1
Es funktioniert bei mir nur für die ersten 3 Schritte. :)
hln
6
Nicht so schlau, die Berechtigung für alle Dateien auf dem Server auf 777 zu setzen.
Chris Gudn
1
Ich bin nicht wirklich beeindruckt von dem Schritt, bei dem Sie der gesamten Magento-Installation die vollständige Lese- und Schreibberechtigung erteilen.
Cyclonecode
1
Das Setzen von Berechtigungen auf 777 ist ein schlechter Rat, aber hoffentlich werden alle Sysadmins es besser wissen.
John Hall
6

Für mich lag es einfach daran, dass mod_rewrite nicht aktiviert war.

sudo a2enmod rewrite

und

service apache2 restart

Haim
quelle
1
perfekte Lösung!!! +1 :)
SagarPPanchal
6

Ich hatte das gleiche Problem durch Hinzufügen behoben

sudo nano /etc/apache2/apache2.conf

Ändern Sie dies

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

dazu

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Sie sollten auch das mod_rewriteApache2-Modul für SSL-Zertifikate aktivieren und installieren:

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo a2enmod rewrite

sudo service apache2 restart
Chaitanya
quelle
1
Dies plus rm -rf var / * hat bei mir funktioniert. Toller und guter Ort.
Jon Holland
6

Hier ist die einfachste Lösung, wenn der Versionsname im CSS-Pfad angezeigt wird

Gefällt mir: pub / static / version323334 /

Führen Sie dann diese Abfrage in MySQL aus

INSERT INTO core_config_data (path, value) VALUES ('dev/static/sign', 0)
ON DUPLICATE KEY UPDATE value = 0;

Danach löschen Sie den Konfigurations-Cache

 bin/magento cache:clean config

Sie können auch die statische Dateiversion von admin aus deaktivieren

Bildbeschreibung hier eingeben

Surendra Kumar Ahir
quelle
4
Das hat bei mir funktioniert, danke. Die Abfrage muss jedoch korrigiert werden. INSERT INTO core_config_data (path, value) VALUES ('dev / static / sign', 0);
Aftab Naveed
Was ist Pfad und Werte
zus
Pfad, Wert sind Felder Name i bereits Werte definieren (dev / static / Zeichen, 0), nur diese SQL führen Sie es Arbeit sein sollte
Surendra Kumar Ahir
perfekte Lösung!!! machte meinen Tag :) +1
SagarPPanchal
5
  1. Versuchen Sie, den Cache zu deaktivieren, wenn Sie ihn vorher nicht deaktiviert haben
  2. Stellen Sie sicher, dass Sie die neueste Version von Magento mit sauberem Code haben. Wenn Sie etwas ändern oder anpassen, stellen Sie sicher, dass Sie alle Fehler beheben.
  3. Führen Sie einige der folgenden Befehle aus.

    php bin/magento indexer:reindex

    php bin/magento cache:flush

Ordner entfernen in

  • pub/static/frontend/*
  • var/cache
  • var/view_preprocessed/*

  • php bin/magento setup:static-content:deploy

mrtuvn
quelle
3

In meinem Fall habe ich versehentlich .htaccessDateien aus ROOT/pub/und ROOT/pub/staticOrdner gelöscht . Dann funktioniert es, wenn ich es zurücksetze .

Elavarasan
quelle
2

Gelöst !!!

Führen Sie die folgenden Befehle in der CLI-Oberfläche Ihres Magento2-Stammordners aus:

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

Dann löschen Sie den var- Ordner mit diesem Befehl im Stammverzeichnis von magento2.

rm -rf var/*

Aktualisieren Sie dann Ihre Homepage und Ihr Admin-Panel. Es funktioniert !!!!! Cool !!!!

Mukesh Prajapati
quelle
1

Ich hatte das gleiche Problem mit 404s. Ich habe das Problem gelöst, indem ich sichergestellt habe, dass die VirtualHost-Direktive in Apache korrekt ist. Hier ist mein VirtualHost:

<VirtualHost *:80>
    DocumentRoot /var/www/magento2
    ServerName magento-ce-2.1.6
    <Directory "/var/www/magento2">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>
colin
quelle
Und können Sie auch sagen, was vorher falsch war? Andernfalls wird dieses Beispiel anderen nicht viel helfen.
Fabian Schmengler
0

Ich hatte genau das gleiche Problem wie das OP und es lag einfach daran, dass ich mein Gebietsschema auf festgelegt habe en_AU, sodass die Verwendung des standardmäßigen Bereitstellungsbefehls nur den en_USInhalt generierte . Sie müssen das Gebietsschema, das Sie tatsächlich verwenden, wie folgt zum EN des Befehls hinzufügen:

php bin/magento setup:static-content:deploy en_US en_AU
Dave
quelle
0

Ich habe die obigen Lösungen ausprobiert. Aber es hat mir nicht geholfen. Trotzdem habe ich die gleichen Befehle verwendet, die sie mit den Änderungen der Reihenfolge erwähnt haben. Sie sind,

  1. Cache, Composer_Home, Generation, Log, Page_Cache, TMP und View_Preprocessed aus dem Var- Verzeichnis löschen

  2. Führen Sie die folgenden Befehle einzeln aus.

php bin / magento indexer: reindex

PHP bin / Magento Cache: Flush

php bin / magento setup: static-content: deploy

Ich hoffe das kann jemandem wie mir helfen.

TS Guhan
quelle
0

Deaktiviere mod_pagespeed

Pagespeed verarbeitet eine "zwischengespeicherte" Instanz Ihres Inhalts mit einem Kürzel, dh wenn dies die normale Datei ist.

image.css

Es wird wie folgt eingestellt.

image.pagespeed.css

Das Obige ist ein sehr einfaches Beispiel, aber Sie können bereits sehen, wo sich das zugrunde liegende Problem befindet. Dies kann dazu führen, dass statische Inhalte nicht ordnungsgemäß geladen werden, da sie nicht über das Core-Pathing gefunden werden können, da es sich um temporäre Inhalte handelt. Dies ist ein Problem mit Mod_Pagespeed, weshalb wir empfehlen, es deaktiviert zu lassen.

die Antwort auf die schnelle Kometenunterstützung, und sie löste mein Problem

CDzWebDev
quelle
0

Für Ubuntu 18.04 (Bionic). Ich habe die folgenden Schritte ausgeführt, damit die statischen Dateien korrekt geladen werden.

Nach Abschluss der Installation:

Stellen Sie sicher, dass das 'Neuschreiben' des Apache-Moduls aktiviert ist, falls dies nicht der Fall ist

  • cd /etc/apache2
  • Führen Sie den Befehl aus a2enmod rewrite
  • sudo vi /etc/apache2/apache2.conf

Nehmen Sie dann folgende Änderungen vor

Ändern von:

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
</Directory>

zu

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Dann starte Apache neu

sudo service apache2 restart

oder

sudo /etc/init.d/apache2 restart

Ändern Sie dann die Berechtigungen für <magento root director>

  • chmod -R 774 /var/www/html/<magento root director>

Stellen Sie dann den statischen Inhalt bereit

  • php bin/magento setup:static-content:deploy -f (-f ist erforderlich, wenn Sie sich in der Entwicklungsumgebung befinden)

Leeren Sie dann den Cache und indizieren Sie neu

  • <magento root directory> php bin/magento cache:flush
  • <magento root directory> php bin/magento indexer:reindex

ODER

  • <magento root directory> rm -R /var/cache*

Greifen Sie dann mit auf Ihre Homepage zu

  • 127.0.0.1/your_configured_url anstatt localhost/your_configured_url
FarhanS
quelle
0

Lassen Sie den Composer los und installieren Sie ihn mit der neuesten Zip von hier

Das hat den Job für mich gemacht

Shankar Thyagarajan
quelle