Zur Navigation

Ablaufdatum in CSS festlegen

1 Krieger (Gast)

Google bemängelt das das Ablaufdatum in folgenden CSS-Dateien nicht festgelegt ist::
http://www.fahrrad-workshop-sprockhoevel.de/css/responsive-workshop1.css
http://www.fahrrad-workshop-sprockhoevel.de/css/responsive.css
Die .htaccess sieht wie folgt aus:
AddType x-mapp-php5.5 .php .htm .html .css
AddHandler x-mapp-php5.5 .php .htm .html .css
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/htm "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
Was läuft hier nicht richtig?
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
</IfModule>

20.12.2016 14:19

2 Jörg Kruse

AddType x-mapp-php5.5 .php .htm .html .css
AddHandler x-mapp-php5.5 .php .htm .html .css

Damit sorgst du dafür, dass Dateien mit der Endung .css vom Webserver nicht direkt als text/css ausgegeben werden, sondern als PHP-Dateien geparst werden. Die folgende Direktive kann sich von daher nicht mehr auf diese Dateien beziehen:

ExpiresByType text/css "access plus 1 month"

Vermutlich enthalten die genannten CSS-Dateien eine PHP-Anweisung, die den Content-Type-Header setzt. Auf ähnliche Weise kann man mit PHP auch einen Expires-Header setzen, z.B.:

header('Expires: ' . gmdate('D, d M Y H:i:s', time() + (30 * 24 * 60 * 60)) . ' GMT');

20.12.2016 14:55 | geändert: 20.12.2016 14:56

3 Krieger (Gast)

In der CSS-Datei steht folgendes:
<?php ob_start("ob_gzhandler"); header("Content-type: text/css"); ?> *{margin:0;padding:0}

20.12.2016 17:15

4 Jörg Kruse

Wenn du den Code ordentlich einrückst, kannst du die header() Anweisung für Expires unterhalb der für den Content-Type einbauen:

<?php
ob_start("ob_gzhandler");
header("Content-type: text/css");
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + (30 * 24 * 60 * 60)) . ' GMT');
?>
*{margin:0;padding:0}

Wobei die Reihenfolge der beiden HTTP-Header wohl egal ist.

Das "*{margin:0;padding:0}" gehört schon zum CSS-Code, der danach ausgegeben wird.

Einen CSS-Minifier brauchst du nur auf den CSS-Code anwenden, denn nur dieser wird an den Browser gesandt. Abgesehen davon würde ich zur Bearbeitung grundsätzlich eine Original-Datei mit dem nicht-minifizierten Code vorhalten.

20.12.2016 20:20 | geändert: 20.12.2016 20:22

5 Krieger (Gast)

Vielen Dank erstmal.
Ich habe die Funktion eingefügt und die Fehlermeldung auf die CSS Dateien erscheint nicht mehr.
Jetzt erscheint noch folgende Meldung:
Nutzen Sie Browser-Caching für die folgenden cachefähigen Ressourcen:
http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js (60 Minuten)
http://pagead2.googlesyndication.com/pagead/show_ads.js (60 Minuten)

Muss für die "JS Dateien" noch was eingefügt werden und wo ?

20.12.2016 20:59

6 Käptn Blaubär

Zitat von Krieger

Nutzen Sie Browser-Caching für die folgenden cachefähigen Ressourcen:
http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js (60 Minuten)
http://pagead2.googlesyndication.com/pagead/show_ads.js (60 Minuten)

Muss für die "JS Dateien" noch was eingefügt werden und wo ?

60 Minuten für Javascript-Dateien sind dem Google-Pagespeed-Test zu wenig.

Wenn Dir die Subdomain pagead2.googlesyndication.com gehört, könntest Du in der dortigen .htaccess die Dauer heraufsetzen.

21.12.2016 01:11

7 Jörg Kruse

Ja, bei extern eingebundenen Scripten kann man da selbst nichts machen.

Die 60 Minuten sind für Google AdSense wohl auch ein guter Kompromiss. So ist sichergestellt, dass eine neue Version der JavaScript-Datei innerhalb von maximal einer Stunde überall ankommt.

Edit @ Krieger:

Wenn du eine neue Version der CSS-Datei erstellst, solltest du dann noch einen Versionsparameter an die URL hängen:

<link href="css/responsive.css?version=2" rel="stylesheet">

Andernfalls dauert es wegen des Expires-Header bis zu 30 Tage, bis Besucher deiner Webseite die Layout-Änderungen sehen können. Sobald sich die URL aber ändert, wird die Datei neu geladen

Siehe auch hier:

https://jkip.de/howtos/expires-header

21.12.2016 11:02 | geändert: 15.03.2017 22:15

8 Krieger (Gast)

Danke Jörg.

21.12.2016 16:19

Beitrag schreiben (als Gast)

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





[BBCode-Hilfe]