Zur Navigation

Komprimierung vom Javascript e [2]

11 Krieger (Gast)

Ich habe es jetzt hinbekommen , die Javascripte werden jetzt komprimiert alle anderen auch und zwar mit:
AddType x-mapp-php5.5 .php .htm .html .css .js
AddHandler x-mapp-php5.5 .php .htm .html .css .js

Eine Fehlermeldung gibt es jedoch noch:
http://www.fahrrad-workshop-sprockhoevel.de/js/jquery.flexslider.js (Ablaufdatum nicht festgelegt)
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 2 days"
ExpiresByType text/javascript "access plus 2 days"
ExpiresByType text/html "access plus 2 days"
ExpiresByType text/htm "access plus 2 days"
ExpiresByType application/javascript "access plus 2 days"
ExpiresByType image/gif "access plus 2 days"
ExpiresByType image/jpeg "access plus 2 days"
ExpiresByType image/jpg "access plus 2 days"
ExpiresByType image/png "access plus 2 days"
ExpiresByType image/x-icon "access plus 2 days"

Wo könnte der Fehler liegen?

03.03.2017 17:49

12 Jörg Kruse

Zitat von Krieger
Ich habe es jetzt hinbekommen , die Javascripte werden jetzt komprimiert alle anderen auch und zwar mit:
AddType x-mapp-php5.5 .php .htm .html .css .js
AddHandler x-mapp-php5.5 .php .htm .html .css .js

Damit alleine sicherlich nicht. Mit den Direktiven sorgst du dafür, dass Dateien mit den aufgeführten Endungen als PHP-Dateien geparst werden. Vermutlich hast du in den JavaScript-Dateien jetzt PHP-Code drin stehen, welcher die Komprimierung veranlasst.

Eine Fehlermeldung gibt es jedoch noch:
http://www.fahrrad-workshop-sprockhoevel.de/js/jquery.flexslider.js (Ablaufdatum nicht festgelegt)
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 2 days"
ExpiresByType text/javascript "access plus 2 days"
ExpiresByType text/html "access plus 2 days"
ExpiresByType text/htm "access plus 2 days"
ExpiresByType application/javascript "access plus 2 days"
ExpiresByType image/gif "access plus 2 days"
ExpiresByType image/jpeg "access plus 2 days"
ExpiresByType image/jpg "access plus 2 days"
ExpiresByType image/png "access plus 2 days"
ExpiresByType image/x-icon "access plus 2 days"

Wo könnte der Fehler liegen?

Die ExpiresByType Direktiven finden nur Anwendung auf Dateien, die der Webserver direkt mit dem genannten Content-Type ausliefert. Mit der AddType bzw. AddHandler Direktive sorgst du aber dafür, dass der Webserver die Datei stattdessen an den PHP-Parser übergibt. Du kannst den Expires-Heaer aber dann auch mit PHP ausgeben.

Das gleiche Problem hattest du übrigens auch schon mit CSS-Dateien:

https://joergs-forum.de/ablaufdatum-in-css-festlegen-t-4841-1

... in meiner Antwort dort steht auch, wie man den Expires-Header mit PHP setzt

03.03.2017 19:36 | geändert: 03.03.2017 19:39

13 six

Du hast als Ablaufdatum 2 Tage angegeben!
Soweit ich mich errinern kann sollte mind. 2 weeks angegeben werden,
glaube eine reicht nicht.

---------

03.03.2017 19:41

14 Krieger (Gast)

Vielen Dank für die Antworten.
Ich habe es hin bekommen weil in der:
AddType x-mapp-php5.5 .php .htm .html .css .js
AddHandler x-mapp-php5.5 .php .htm .html .css .js
einmal das js fehlte.
Mit dem Ablaufdatum für die js Dateien habe ich das noch nicht richtig verstanden.
Muss folgendes in der js. Datei eingefügt werden:
<?php
ob_start("ob_gzhandler");
header("Content-type: text/js");
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + (30 * 24 * 60 * 60)) . ' GMT');
?>
*{margin:0;padding:0}
Wenn ich das mache kommt es zu einer Fehlermeldung.

04.03.2017 09:13

15 Jörg Kruse

Zitat von Krieger
Vielen Dank für die Antworten.
Ich habe es hin bekommen weil in der:
AddType x-mapp-php5.5 .php .htm .html .css .js
AddHandler x-mapp-php5.5 .php .htm .html .css .js
einmal das js fehlte.

Ja, dann hast du aber auch schon PHP-Code in den js Dateien stehen, welcher für die Komprimierung sorgt. Die beiden Direktiven bewirken wie gesagt nichts anderes, als dass PHP-Code ausgeführt wird.

Mit dem Ablaufdatum für die js Dateien habe ich das noch nicht richtig verstanden.
Muss folgendes in der js. Datei eingefügt werden:
<?php
ob_start("ob_gzhandler");
header("Content-type: text/js");
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + (30 * 24 * 60 * 60)) . ' GMT');
?>
*{margin:0;padding:0}

Die letzte Zeile gehört da nicht mehr rein - das ist CSS-Code

Wenn ich das mache kommt es zu einer Fehlermeldung.

Bitte in solchen Fällen die genaue Fehlermeldung wiedergeben :)

Der PHP-Code befindet sich ganz am Anfang der Datei? die HTTP-Header können nämlich nur gesendet werden, wenn noch kein Inhalt ausgegeben wurde. Ansonsten wird auch eine entsprechende Fehlermeldung ausgegeben.

04.03.2017 09:57 | geändert: 04.03.2017 10:00

16 Krieger (Gast)

Vielen Dank.
Jetzt klappt es : https://developers.google.com/speed/pagespeed/insights/?url=www.fahrrad-workshop-sprockhoevel.de&tab=desktop

05.03.2017 10:13

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]