Mir ist es jetzt schon 2-3 mal passiert, dass nach dem Anschalten der neuen Merging Funktion für CSS und JavaScript Dateien viele Seiten nicht mehr funktionierten, weil Magento aus unerklärlichen Gründen absolute Pfade zu den CSS / JS Dateien im Quellcode angab. Nach ein wenig googlen, fand ich viele Leute, die dasselbe Problem hatten, aber eine akzeptable Lösung hatte ich nicht gefunden. Also nahm ich die Sache selber in die Hand.
Mit einem Blick in die exception.log (Aktivierbar unter System -> Konfiguration -> Entwickleroptionen -> Log Einstellung -> Aktiviert = Ja) findet man dann schon recht schnell eine Exception, die mit einer JavaScript oder CSS Datei zu tun hat. Bei mir sah das ungefähr so aus:
exception ‚Exception‘ with message ‚Warning: filemtime() [function.filemtime]: stat failed for /var/www/js/calendar/lang/calendar-en.js in /var/www/app/code/core/Mage/Core/Helper/Data.php on line 631‘ in /var/www/app/code/core/Mage/Core/functions.php:245
Hier will Magento mit der Methode filemtime prüfen wann die JavaScript datei calendar-en.js das letzte mal verändert wurde. Dummerweise gab es diese Datei bei mir nicht mehr und das Merging Script verabschiedete sich mit dieser Exception. Anstatt diese Datei einfach weg zu lassen, stoppt Magento den ganzen Merging Prozess und gibt einen halbfertigen Quellcode aus. Das ganze könnte man verhindern, wenn man vorher checken würde ob die Datei überhaupt existiert. Aber da ja deutlich BETA hinter diesem Feature steht, muss man mit solchen Fehlern rechnen.
Kleines Fazit:
Die Probleme beim Merging kommen meistens von fehlende CSS /JS Dateien oder keinen Schreibrechten in /media/css/ oder /media/js/. Mit einem Blick in die exception.log kann man sehr schnell die Ursache für sein Problem finden.
0 Kommentare