W3C-Validierung bei GZip-komprimierten CSS-Dateien
Hans
- php
Ich habe mittels PHP eine HTML Komprimierung realisiert, wie hier beschrieben:
http://phpperformance.de/mod_gzip-mod_deflate-und-sonstige-komprimierungsverfahren-fuer-web-inhalte/
Das heißt:
AddType application/x-httpd-php .css
in der .htaccess Datei.
ob\_start("ob\_gzhandler");
in der jeweiligen PHP-Datei.
Soweit keine Probleme.
In der CSS-Datei steht dies:
<?php
// korrekten Content-Type setzen
header ("content-type: text/css; charset: UTF-8");
// Datenpufferung aktivieren, am Ende gesamten Inhalt an ob_gzhandler übergeben
ob_start ("ob_gzhandler");
// Client-Cache anweisen sicht strikt an diese Anweisungen zu halten
header ("cache-control: must-revalidate");
// wie lange soll der Content gecached werden
$offset = 60 * 60;
// Ablauf-Datum setzen
$expire = "expires: " . gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT";
// Header senden
header ($expire);
?>
Die Komprimierung funktioniert.
Der CSS-Validator vom W3C gibt allerdings folgende Fehlermeldung aus:
Unbekannter Fehler org.w3c.www.http.HttpInvalidValueException: Invalid content type.
Was ist falsch?
Hi,
Der CSS-Validator vom W3C gibt allerdings folgende Fehlermeldung aus:
Unbekannter Fehler org.w3c.www.http.HttpInvalidValueException: Invalid content type.
Was ist falsch?
Das hier:
// korrekten Content-Type setzen
header ("content-type: text/css; charset: UTF-8");
Zwischen Charset und er Angabe desselben gehört ein Gleichheitszeichen, kein Doppelpunkt.
MfG ChrisB
Ich habe mittels PHP eine HTML Komprimierung realisiert, wie hier beschrieben:
http://phpperformance.de/mod_gzip-mod_deflate-und-sonstige-komprimierungsverfahren-fuer-web-inhalte/
Vielleicht möchtest du statt der albernen PHP-Krücke (albern, weil man nur wegen der Komprimierung sämtliche Dateien in PHP-Skripte umwandeln muss) lieber die im Webserver bereits eingebaute Funktion nutzen: Sofern du Apache 2 nutzt (dürfte Standard sein) und in diesem mod_deflate aktiv ist (ist Standard), setze in die oberste .htaccess die Zeile
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/rss+xml
… und gut ist. Der Webserver komprimiert automatisch sämtliche Daten der genannten Typen, egal aus welcher Quelle (also nicht nur statische Dateien, sondern auch die Ausgabe von Skripten etc., einschließlich PHP), ohne, dass du noch irgendwas dazu tun müsstest.