Bei der lokalen Installation von Magento 2 werden keine Dateien im Ordner pub / static generiert

15

Ich habe gerade Magento 2 Community Edition mit Beispieldaten (von der Website heruntergeladen und nicht mit Composer installiert) lokal über MAMP installiert. Der Installationsvorgang war erfolgreich, aber alle Dateien im Ordner pub / static fehlen mit Ausnahme von .htaccess. Das bedeutet, dass alle CSS, Js usw. 404 sowohl für das Frontend als auch für das Backend zurückgeben.

Ich habe mehrere Stunden damit verbracht, dies ohne Glück zu beheben. Das habe ich bisher gemacht:

  • Geändert Options Indexes FollowSymLinks AllowOverridevon ‚Keine‘ auf ‚Alle‘ in der /MAMP/conf/apache/httpd.conf und neu gestartet MAMP
  • Vergewissern Sie LoadModule rewrite_module modules/mod_rewrite.sosich, dass in httpd.conf kein Kommentar vorhanden ist
  • Richten Sie in MAMP eine Entwicklungsdomäne (magento.dev) ein
  • Versucht, php bin/magento setup:static-content:deployim magento.dev-Stammverzeichnis mit Terminal auszuführen. Dies gibt jedoch zurück:

Schwerwiegender Fehler: Die Klasse 'Locale' wurde in /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php in Zeile 64 nicht gefunden

  • Nicht kommentierte und geänderte RewriteBase RewriteBase /in der .htaccess-Datei im magento.dev-Stammverzeichnis.
  • Setze Magento in den Entwicklungsmodus
  • Löschen Sie den Cache manuell und führen Sie ihn php bin/magento setup:static-content:deployerneut aus

Die meisten Guides und Forenbeiträge schreiben mir vor, dass ich laufen soll. php bin/magento setup:static-content:deployIch bin mir jedoch nicht sicher, ob ich es richtig mache.

OS: OSX 10.11.2

MAMP-Version: 3.5

PHP-Version: 7.0

Apache-Version: 2.4.16

MySQL-Version: 5.6.25

Jede Hilfe wäre dankbar.

Skovsgaard
quelle
Ich bin auf 2.2.2 auf CentOS Server installiert. Nichts auf dieser Seite funktioniert. Um ein Styling zu haben, muss ich php bin/magento setup:static-content:deploy -f 80 Sekunden laufen und warten.
Chris K

Antworten:

15

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

Ich möchte 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 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

Ich persönlich versucht es auf meinem localhost mit MAMP, EasyPHP devserver, Xampp und WAMPP und erfolgreich installiert und mit Magento 2. Für weitere können Sie auf diesen Link finden Sie unter : Magento 2 CSS und JavaScript nicht Laden von richtigen Ordner

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: static-content: deploy " ein.

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
Die Antwort wurde bearbeitet.
Fayyaz Khattak
Greate! Ich habe die Lösung 1 ausprobiert und es funktioniert für mich. Danke Khatak sb
Muhammad Azeem
Willkommen @ MuhammadAzeem
Fayyaz Khattak
@ Raja Khoury Gern geschehen!
Fayyaz Khattak
Lösung 1 funktioniert bei mir! Vielen Dank !!
Daniel Silva
5

Versuchen Sie, den folgenden Befehl auszuführen

php bin/magento setup:static-content:deploy

Und wenn beim Ausführen dieses Befehls ein Fehler auftritt, wie z. B. eine fehlende Datei, vergleichen Sie die Struktur Ihrer Projektdatei mit der neuen magento2Dateistruktur. Wenn eine Datei in Ihrem Projekt fehlt, kopieren Sie die entsprechende Datei in Ihr Projekt.

Und wenn Sie einen anderen Fehler haben, schreiben Sie einen Fehler in Ihre Frage, damit jemand Ihre Frage beantworten kann.

Keyur Shah
quelle
Danke für eine schnelle Antwort. Ich werde das machen. Wo genau und wie führe ich diesen Befehl aus?
Skovsgaard
@Skovsgaard Sie können diesen Befehl von Ihrem Terminal ausführen, aber stellen Sie sicher, dass Sie sich im magento2-Verzeichnis von Terminal
Keyur Shah,
Anscheinend fehlen keine Dateien. Das installierte Magento enthält offensichtlich mehr Dateien, die sich auf den Installationsprozess beziehen. Ich bekomme folgende Fehlermeldung: Fatal error: Class 'Locale' not found in /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php on line 64Nach dem Ausführen php bin/magento setup:static-content:deployim Stammverzeichnis.
Skovsgaard
Ich war nicht wirklich hilfreich. Es tut uns leid.
Skovsgaard
2

Es sieht so aus, als ob die intlErweiterung in Ihrer Konsolenversion von PHP nicht geladen ist. Bitte stellen Sie sicher, dass Sie die gleiche Version / Einstellungen für Apache und CLI-Version von PHP verwenden.

MacOsX hat eine vorinstallierte Version von PHP und einige Pakete, die PHP installieren, ändern Symlink für Terminalsitzungen nicht. Als Ergebnis können Sie verschiedene PHP-Versionen gleichzeitig installieren.

PS: Ich schlage vor, Vagrant unter Mac OS zu verwenden. Es funktioniert ziemlich gut, wenn Sie nfs für die gemeinsame Nutzung von Dateien verwenden

KAndy
quelle
Aha! Das vorinstallierte PHP (CLI) ist nur 5.5.30. Vorinstallierter Apache ist 2.4.16 (Ich weiß nicht, wie ich die Apache-Version von MAMP überprüfen soll, wenn MAMP Apache auch separat installiert). Also muss ich die vorinstallierte Version auf 7 updaten und auch intl extension (cli oder mamp?) Installieren? Vagrant scheint für einen Noob wie mich zu fortgeschritten zu sein.
Skovsgaard
Ich kann keine Mac-spezifischen Fragen beantworten, aber es gibt mindestens zwei Möglichkeiten, um Ihre PHP-Version zu überprüfen: php -v(zeigt an, unter welcher Version PHP-Befehle ausgeführt werden) und eine phpinfo.php , die anzeigt, unter welcher PHP-Version der Webserver ausgeführt wird.
Steve Johnson
Okay, MAMP läuft mit PHP 7 und Apache 2.2.29. Auf meinem lokalen Computer laufen PHP 5.5.30 und Apache 2.4.16. Also ist der nächste Schritt, das PHP des lokalen Rechners auf 7 zu aktualisieren?
Skovsgaard
Bitte versuchen Sie es mit dem vollständigen Pfad zu php7 binary
KAndy
2

Wenn alles andere fehlschlägt, bereinigen Sie diese Verzeichnisse:

rm -rf pub/static/*    # DO NOT DELETE .htaccess
rm -rf var/view_preprocessed/*
php bin/magento setup:static-content:deploy

Dies funktioniert, wenn Sie in diesen Verzeichnissen fehlerhafte Symlinks haben.

Niesen
quelle
1
.htaccess sollte niemals gelöscht werden. Ich habe auch diesen Fehler gemacht und Stunden verschwendet
Tahir Yasin
1

Löschen Sie page_cache, di, view_process, cache

Geben Sie dann den Ordnern und Dateien die richtige Berechtigung.

Führen php bin/magento setup:static-content:deploySie dann aus Ihrem Stammordner.

Scheck Pub / statisch.

Ich hoffe, dies wird dir helfen.

leugnen vachhani
quelle
Wo und wie laufe ich clear page_cache, di ,view_process, cache? Es ist eine lokale Installation, also habe ich als Administrator meines Computers alle Lese- / Schreibrechte. Gibt es andere Berechtigungen, die mir nicht bekannt sind?
Skovsgaard
Wenn Sie local verwenden, geben Sie dem Root-Ordner die volle Berechtigung
denish vachhani
Alle Ordner sind in var / clear alle Ordner und geben volle Berechtigung für Ordner.
Denish Vachhani
1

Haben Sie Magento2 installiert composerund ausgeführt composer init? Wenn nicht, versuchen Sie es und führen Sie den Befehl ausphp bin/magento setup:static-content:deploy

Quan Le
quelle
Composer ist auf meinem Computer installiert, aber ich habe es nicht für die Installation von Magento 2 verwendet. Ich habe einfach die .zip-Datei von der Website heruntergeladen, entpackt und installiert. Wenn ich composer initcomposer starte, frage ich mich, ob ich composer.json config einrichten soll.
Skovsgaard