Ich habe Magento 2 von https://github.com/magento/magento2 heruntergeladen und installiert
Aber ich bekomme 404-Fehler für Skripte und Cs in http: // localhost / magento2 / pub / static /
Ich habe überprüft, Apache Rewrite Engine ist eingeschaltet. Trotzdem werden CSS- und JS-Dateien nicht geladen.
Wenn ich versuche, direkt über den Browser auf eine Datei zuzugreifen, tritt die folgende Ausnahme auf.
Cannot create a symlink for "D:/xampp/htdocs/magento2/lib/web/mage/calendar.css" and place it to "D:/xampp/htdocs/magento2/pub/static/frontend/Magento/blank/en_US/mage/calendar.css" Warning!symlink(): Cannot create symlink, error code(1314)
#0 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\Filesystem\Directory\Write.php(155): Magento\Framework\Filesystem\Driver\File->symlink('D:/xampp/htdocs...', 'D:/xampp/htdocs...', Object(Magento\Framework\Filesystem\Driver\File))
#1 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink.php(30): Magento\Framework\Filesystem\Directory\Write->createSymlink('lib/web/mage/ca...', 'frontend/Magent...', Object(Magento\Framework\Filesystem\Directory\Write))
#2 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\Publisher.php(65): Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink->publishFile(Object(Magento\Framework\Filesystem\Directory\Write), Object(Magento\Framework\Filesystem\Directory\Write), 'lib/web/mage/ca...', 'frontend/Magent...')
#3 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\Publisher.php(49): Magento\Framework\App\View\Asset\Publisher->publishAsset(Object(Magento\Framework\View\Asset\File))
#4 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\StaticResource.php(118): Magento\Framework\App\View\Asset\Publisher->publish(Object(Magento\Framework\View\Asset\File))
#5 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\Bootstrap.php(245): Magento\Framework\App\StaticResource->launch()
#6 D:\xampp\htdocs\magento2\pub\static.php(13): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\StaticResource))
#7 {main}
Mein Betriebssystem ist Windows 7 und ich verwende einen xampp-Server.
Antworten:
Wenn sich Magento 2 nicht im Produktionsmodus befindet, versucht es, Symlinks für einige statische Ressourcen zu erstellen. Sie können dieses Verhalten folgendermaßen ändern.
Öffne
app/etc/di.xml
und finde denvirtualType name="developerMaterialization"
Abschnitt. In diesem Abschnitt finden Sie ein Elementname="view_preprocessed"
, das geändert oder gelöscht werden muss. Sie können es ändern, indem Sie den Inhalt vonMagento\Framework\App\View\Asset\MaterializationStrategy\Symlink
nach ändernMagento\Framework\App\View\Asset\MaterializationStrategy\Copy
Löschen Sie die Dateien unter pub / static, um vorhandene Symlinks zu entfernen. Möglicherweise möchten Sie darauf achten, die
.htaccess
Datei nicht zu löschen .Dies sollte Ihren Fehler mit dem Symlink beheben.
quelle
Ich stellte mich diesem Problem und versuchte es herauszufinden. Ich stimme Chris O'Toole zu. Ich werde zusätzlichen Schritt hinzufügen. Meine Schritte sind,
Ersetzen Sie Symlink durch Wort kopieren. Sparen.
Löschen Sie alle Ordner in pub / static. Löschen Sie nicht .htaccess und andere Dateien.
Führen Sie xampp als Administrator aus. Führen Sie die Befehlszeile als Administrator aus. Rennen
grunt exec:<theme name>
.Sie werden sehen, es läuft gut.
Dann kannst du rennen
grunt less:<theme name>
Endlich kannst du rennen
grunt watch
Wenn Sie in weniger Dateien (_theme.less oder _extend.less) Änderungen vornehmen, werden automatisch Style-L- und Style-M-CSS-Dateien im Ordner pub / static erstellt.
Ich verwende Magento 2.1 in Windows 10.
quelle
Denken Sie daran, die Dateiberechtigungen zu aktualisieren, nachdem Magento diese neuen statischen Dateien erstellt hat. Sie sind nicht im Besitz von www-data und geben daher 404 aus.
quelle
In meinem Fall war es nicht , weil meine
app/etc/di.xml
war ,Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink
wie durch @Chrish erwähnt. Das lag daran, dass eines meiner Module einen Skriptfehler in meiner.phtml
Datei hatte. Ich würde empfehlen, Ihren Code in der.phtml
Datei zu überprüfen . In meinem Fall wurde das Problem durch Korrekturen in meiner Skriptdatei behobeninitialize.phtml
.quelle
Ich fand es wichtig, die richtige Berechtigung für den Apache mit mod_php für die Ordner pub / static und var / zu verwenden. Aus dem Alan Storm-Artikel http://alanstorm.com/magento_2_adding_frontend_files_to_your_module
Sie sollten das im Server-Terminal ausführen. Das behebt mich 404 Fehler für die Skripte und Bilder.
ps Aber das ist für Linux.
quelle
chmod -R 777 /path/to/magento2/pub/static /path/to/magento2/var
Ich denke, der richtige Weg, dies zu tun, ist von der Kommandozeile: cd in Ihr Magento-Verzeichnis und führen Sie den folgenden Befehl aus:
var/cache
Verzeichnis leeren und prüfen.quelle
Einfach alle Dateien unter löschen
pub/static/*
. Magento generiert automatisch die statischen Dateien für Sie, wenn Sie eine Seite laden.quelle