Beginnen Sie Ihre CSS-Dateien mit diesem PHP (und nennen Sie sie style.php)
<?php
ob_start ("ob_gzhandler");
header("Content-type: text/css; charset: UTF-8");
header("Cache-Control: must-revalidate");
$offset = 60 * 60 ;
$ExpStr = "Expires: " .
gmdate("D, d M Y H:i:s",
time() + $offset) . " GMT";
header($ExpStr);
?>
body { color: red; }
Rufen Sie dann Ihr CSS mit dem PHP-Dateinamen auf
<link rel='stylesheet' type='text/css' href='css/style.php' />
Einige ältere Browser machen Probleme, wenn CSS-Dateien keine .css-Endung haben. Das Gleiche gilt für Javascript-Dateien.
Benennen Sie sie vielleicht mit .htaccess in style.css um
Außerdem kümmert sich niemand um alte Browser, wenn er Websites entwickelt.
@Ben: Oder benennen Sie die Datei in .css um und verwenden Sie .htaccess, um sie als PHP zu interpretieren ;-)
@Ben: Oder benennen Sie die Datei in .css um und verwenden Sie .htaccess, um sie als PHP zu interpretieren ;-)
Ich glaube, es ist gute Praxis, ob_flush(); am Ende Ihres Skripts aufzurufen.
Woher wissen Sie so viel?
Ich freue mich, dass meine Einreichung auf der Website gelandet ist.
Ich bekomme den Fehler "Cannot modify header information". Irgendwelche Ideen?
Sie geben möglicherweise etwas aus, bevor der Aufruf an header() erfolgt.
Normalerweise liegt das an einer neuen Zeile oder einem Leerzeichen vor dem allerersten <?php-Tag
Prüfen Sie auf UTF8 Byte Order Marks in Ihrer Datei. Das verursacht das Problem hier.
Danke für den Schnipsel. Die Zeile
<pre>header(“Content-type: text/css; charset: UTF-8”);</pre>
sollte sein
<pre>header(“Content-type: text/css; charset=UTF-8”);</pre>
Was sind die Vorteile, wenn ich CSS komprimiere?:)
Google Speed Test :P
Ich denke, Sie können auch Gzip- oder Deflate-Mod-Optionen verwenden, wenn Sie einen Apache-Server verwenden.
Verwenden Sie den ob_gzhanlder() Callback.
ob_start(‘ob_gzhandler’);
verfügbar seit PHP 4.0.4
Was ist der Nutzen?
- Danke im Voraus.. :)
Was sind die Vorteile davon? Ich benutze Minify-Sachen?
Sie könnten es so verwenden
<?php $base_color = "#COFFEE"; ?> a { color: <?=$base_color?>; }Dieses Skript hat Nachteile. Der Hauptnachteil ist Caching.
Beim ersten Besuch setzt PHP das Ablaufdatum auf "Zukunft", aber... wenn Sie Änderungen am CSS vornehmen, werden diese bei wiederkehrenden Besuchern nicht übernommen, da sie bereits gecachten CSS haben.
Das stimmt, aber es gibt andere Caching-Methoden, wie z. B. das Setzen eines ETag-Headers und dessen Änderung bei jeder Änderung des Inhalts des PHP-Outputs, um den Browser-Cache zu aktualisieren. Oder besser noch, machen Sie einen Checksumme des Output-Buffers und setzen Sie diesen als ETag, damit Sie nie den PHP-Code anfassen müssen, obwohl das Nachteile hat, da Sie das CSS rendern und hashen müssten, um den ETag vom Client zu vergleichen.
http://en.wikipedia.org/wiki/HTTP_ETag
Kurzer Hinweis: Ich habe den obigen Code nicht getestet, er funktioniert also möglicherweise oder auch nicht.
Oder Sie können eine sehr schnelle und gängige Lösung für Caching verwenden, time() oder etwas Ähnliches. Ich persönlich mache style.php?r=md5 ( 2012-01-13_09-51pm )
md5-Hashing des Revisionsdatums von CSS, sodass bei einem neuen md5-Hash das CSS neu gecacht wird, da time() ein ständiges erneutes Abrufen erzwingt, was nicht unbedingt erwünscht ist.
Aber trotzdem gut und sehr wichtig, besonders wenn der Google Bot vorbeischaut, er prüft auch, wie schnell Ihre Website ist. Ich glaube nicht, dass das ein Nachteil ist. Es kommt ganz darauf an, wie Sie es nutzen.
Hallo,
Ich kann das obige Skript mit dem v2.1 Validator nicht validieren.
Es gibt mir immer wieder diesen Content-Type-Fehler. Kann mir bitte jemand helfen? Vielen Dank!
Der genaue Fehler
URI : http://www.tsmgroup2.biz/css/dropdown/themes/default/dropdowncomb.php
-1 Unknown error org.w3c.www.http.HttpInvalidValueException: Invalid content type.
Nutzen Sie gerne den Validierungsdienst von w3.org
Ich denke, es lädt das CSS jedes Mal neu, wenn die Seite geladen wird.
mAnisH, könnten Sie mir bitte sagen, was Sie getan haben, um das CSS jedes Mal neu laden zu lassen? Ich könnte wirklich Hilfe gebrauchen :(
Ich lerne in diesem Beruf nie aus. Ich hatte keine Ahnung, dass CSS-Kompression auf diese Weise erreicht werden kann.
Danke!
Ich benutze Joomla mit Gzip, aber die CSS-Dateien werden nicht komprimiert. Ich verwende kein .htaccess, da der Server FreeBSD hat, also möchte ich fragen, ob Ihr Tutorial helfen wird, meine CSS-Dateien zu komprimieren, oder ob es die Website beschädigen wird?
Vielen Dank
Ich verwende derzeit diese Option, um css.php in Ihren Assets zu erstellen und folgen Sie dem unten stehenden Code
und fügen Sie es in Ihre Kopfzeile ein
und es funktioniert...
Hallo.
Wenn ich den Code so benutze
dann habe ich eine komprimierte Datei, aber die CSS-Datei (style.php) funktioniert nicht auf meiner Seite! Irgendwelche Vorschläge?
Ich persönlich mag die Art und Weise, wie man den Hash der PHP-Datei bekommt.
z. B.: style.php?r=md5 (file_get_contents(style.php)), um ihn in die Kopfzeile zu schreiben.
Wenn die Datei also gleich ist und Benutzer sie gecacht haben, muss sie nicht erneut geladen werden.
Aber wenn nur 1 Byte geändert wird, muss jeder Benutzer die Datei erneut herunterladen.
Ooo!
Sehr gute Idee!
Warum müssen wir CSS-Dateien mit PHP komprimieren?
Was ist der Grund?
Das Komprimieren von CSS führt zu kürzeren Ladezeiten für Ihre Seiten.
Zum Beispiel
Eine CSS-Datei von 10 KB würde mehr Zeit benötigen, und wenn die gleiche komprimierte CSS-Datei geladen wird, würde sie definitiv weniger Zeit in Anspruch nehmen.
schlechte Praxis für die Produktion.
Komprimieren Sie Ihr CSS und speichern Sie es dann, anstatt es jedes Mal zu komprimieren, wenn die Seite geladen wird.
Wie groß ist CSS überhaupt, dass Sie es komprimieren müssen, zum Beispiel 999 Gigabyte?
Ziemlich hilfreich! :D
Großartig!
Eine andere Möglichkeit, dies zu tun, ist, eine PHP-Datei auszuführen (unter einer Easter-Egg-URL, die der Entwickler kennt), die .css- oder .js-Dateien nach der Veröffentlichung komprimiert.
Dies kann bei der Fehlersuche helfen, wenn der Designer Zeilennummern in der Entwicklerkonsole sehen muss.