Magento 2: Symbolische Links zu Pub / statischen Dateien

8

Als ich vor einiger Zeit an einem Projekt mit Magento 2 arbeitete, bemerkte ich, dass meine CSS- und JavaScript-Dateien in pub/staticmeinem Thema tatsächlich symbolische Links zu den tatsächlichen Dateien waren. Dies war auch, als ich eine setup:static-content:deployAktion von der Shell aus ausführte.

Ich habe kürzlich auf ein neues System migriert und den Code und die Datenbank des Projekts ausgecheckt. Wenn ich jetzt meinen statischen Inhalt bereitstelle, handelt es sich jedoch eher um Kopien als um symbolische Links.

Ist etwas geändert? Oder fehlen mir hier einige Konfigurationseinstellungen? Es ist nicht sehr produktiv, den statischen Inhalt jedes Mal neu kompilieren zu müssen, wenn ich eine Änderung an JS oder CSS vornehme.

Ich benutze Magento 2.0.6

Giel Berkers
quelle
Ist Ihr Geschäft auf den Entwicklermodus eingestellt?
Ryan Hoerr
Ja, mein Shop ist auf den Entwicklermodus eingestellt. Ich habe auch versucht, in die Produktion zu pub/staticwechseln, den Ordner zu löschen und den Entwicklermodus wieder zu aktivieren, aber ohne Erfolg. Alle Dateien werden kopiert anstatt mit Symlinks versehen.
Giel Berkers

Antworten:

10

Höchstwahrscheinlich haben Sie in der Vergangenheit alle Ihre Dateien im Pub-Ordner gelöscht, einschließlich:

  1. /pub/static.php
  2. /pub/static/.htaccess

Wenn die gesuchte statische Datei nicht gefunden wird, leitet sie die Anforderung an einen Ordner oben an die Datei static.php weiter, wodurch der Fallback-Mechanismus initiiert und diese Datei als Symlink abgerufen wird.

Um das Problem zu beheben, kopieren Sie eine neue Kopie von Magento 2.x, die Sie ausführen, und kopieren Sie diese Dateien in Ihren Pub-Ordner.

Timik
quelle
10

Öffnen Sie Ihre di.xml ( app / etc / di.xml ) und überprüfen Sie in Zeile 580, ob Sie so etwas finden sollten (ich verwende 2.0.6 und der Modus ist auf den Entwickler eingestellt): Wie Sie sehen können, sind view_preproccessed symlinked und die Standard ist Kopieren eingestellt.

<virtualType name="developerMaterialization" type="Magento\Framework\App\View\Asset\MaterializationStrategy\Factory">
    <arguments>
        <argument name="strategiesList" xsi:type="array">
            <item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink</item>
            <item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
        </argument>
    </arguments>
</virtualType>

Schauen Sie sich auch hier den Magento 2 404-Fehler für Skripte und CSS an, insbesondere die Antwort von Chris O'Toole.

Samir Shaban
quelle