Magento CSS und JavaScript werden aufgrund des Dateisystempfads nicht geladen

29

Ich konnte mit Magento Connect kein Modul installieren und habe eine Connection Error try again laterFehlermeldung erhalten. Gemäß den Anweisungen des Modulentwicklers habe ich versucht, die Berechtigungen im Dokumentenstamm wie folgt zu ändern:

find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod o+w var var/.htaccess app/etc
chmod 550 mage
chmod -R o+w media

Es hat immer noch nicht funktioniert, also habe ich das Modul manuell installiert. Ich habe mich dann im Admin-Backend angemeldet und Magento hat versucht, CSS-Dateien mithilfe der Systemdateipfade anstelle der folgenden URLs bereitzustellen:

<link rel="stylesheet" type="text/css" href="/home/user/public_html/js/calendar/calendar-win2k-1.css" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/reset.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/boxes.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/custom.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/xmlconnect/boxes.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/print.css" media="print" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/menu.css" media="screen, projection" />

Ich habe sofort die Erweiterung entfernt und versucht, die Dauerwellen von einem anderen Server mit einem funktionierenden Magento ohne Erfolg abzugleichen. Ich habe auch:

  • Lokale, APC- und Magento-Caches wurden gelöscht
  • In Fehlerprotokollen gesucht (Protokollierung ist aktiviert)
  • Überprüfen Sie die korrekten Werte von web / unsecure / base_url und web / secure / base_url in der Datenbank
  • 3 mal neu gestartet;)

Minify wird nicht verwendet. Merge-CSS-Dateien sind aktiviert, ich kann jedoch nicht herausfinden, wie sie ohne die Administrationsoberfläche deaktiviert werden können (Speichern und Navigation funktionieren nicht, selbst wenn ich die korrekten Werte durch Firebug ersetze). Irgendwelche Ideen wäre sehr dankbar!

(Frage ursprünglich gepostet von @reflexiv am Stack Overflow )

Navarr
quelle
Aktivieren Sie das Ausnahmeprotokoll und prüfen Sie, ob alle Dateien vorhanden sind.
Joseantgv

Antworten:

42

Magento verwendet URLs mit vollständigem Pfad für den Zugriff auf CSS-Dateien. Dies ist ein häufiger Fehler, der auf zwei Ursachen zurückzuführen ist:

  • Aktivieren des Zusammenführens von CSS-Dateien
  • Magento kann keine Medien / Ordner lesen / beschreiben.

Um dieses Problem zu beheben, stellen Sie bitte Folgendes sicher:

  • Das Medium / der Ordner ist in Ihrer Magento-Installation vorhanden.
  • Der Datenträger / Ordner kann von Ihrem Webserver beschrieben werden.

Als @flochtililoch auf Stack Exchange gepostet :

Sie sollten überprüfen, ob Apache das Medienverzeichnis tatsächlich besitzt , indem Sie zuerst überprüfen, unter welchem ​​Benutzer Apache ausgeführt wird , und dann die Berechtigungen entsprechend anpassen:

chown -R <apache_user> media
chmod -R ug+w media

Weitere Informationen finden Sie hier: Magento-Dateisystemberechtigungen

Navarr
quelle
Ich hatte das gleiche Problem, weil die CSS / JS-Zusammenführung aktiviert war.
DmitryR
1
@DmitryR: Die Aktivierung der Zusammenführung ist selbst nicht das Problem, der Webserver, der nicht in der Lage ist, auf Medien zu schreiben, ist das Problem. Dies wird versucht, wenn die Zusammenführung aktiviert ist. Dies schlägt fehl und das Ergebnis ist. ;)
Navarr
Dies hat einen schwerwiegenden Fehler: Es macht den Ordner nicht nur für den Apache-Benutzer beschreibbar, es macht den Ordner für alle beschreibbar . MACH DAS NICHT. Es öffnet sich eine massive Sicherheitslücke.
Michael Hampton
Guter Anruf. Ich habe es aktualisiert, um ug + w anstelle von o + w zu sein
Navarr
3

Ich bin gerade auf ein sehr ähnliches Problem gestoßen, als ich eine Site von einem Live-Server auf einen Apache-Server eines lokalen Entwicklers (MAMP) kopierte. Folgendes hat es für mich gelöst:

  1. Clearing media/css& media/jsalle Dateien
  2. In der Datenbanktabelleneinstellung core_config_data:
    dev/js/merge_filesauf 0 (war 1)
    dev/css/merge_css_filesbis 0 (war 1)
  3. Clearing var/cache

Reloaded Front & Backend & Now CSS / JS-Dateien werden korrekt geliefert.

Freshwebs
quelle