CSS-Datei komprimineren und einbinden

phpied.com/cssmin-js/

Habe obigen Tool gefunden, mit dem man eine CSS Datei komprimineren kann. Wenn Ich jetzt die Funktion aufrufe bekomme ich den CSS-Code in einem komprimierten String zurück, doch ich will den String nicht in die HTML codieren ( … komprimierter CSS-String…</style), sondern die CSS natürlich normal einlesen (<link rel=“stylesheet” type=“text/css” href= …) aber ich darf die ursprüngliche CSS-Datei nicht einfach überschreiben, weil ich sie gelegentlich auch lese.

Kennt jemand eine Lösung für dieses Problem ?

Wenn man es mit einem Dienstprogramm ausliefern läßt, kann man natürlich eine Kompression
mit gzip oder zip vornehmen lassen und entsprechende Informationen an das
Darstellungsprogramm senden wie bei anderen Dateien auch.
Man kann das Dienstprogramm natürlich auch so konfigurieren, daß es automatisch alle
XHTML- und CSS-Dateien etc komprimiert verschickt.
Man kann die Datei auch selbst komprimieren und fertig ablegen, muß dann nur vorsorgen,
daß das Dienstprogramm die entsprechende Information sendet.
Das geht für CSS und andere natürlich genauso, wie man es auch für SVG macht, im
Zweifelsfalle kann man beim Apachen etwa per .htaccess die passenden Angaben für die
verwendete Dateiendung vornehmen.

Will man dem Darstellungsprogramm und dem Dienstprogramm hingegen nur ersparen, daß
mehrere Anfragen gestellt werden, packt man das CSS entweder in das Element style oder
man integriert es mit dem Pseudoprotokoll data: in den Wert des href, statt dort eine normale
URI/IRI anzugeben, aufgrund der base64-Kodierung vergrößert das aber die Datenmenge
etwas und verkleinert sie nicht. Das ist aber auch nur sinnvoll, wenn die CSS-Datei nur für
eine XHTML-Datei verwendet wird, nicht für mehrere.

Auf der referenzierten Seite konnte ich jetzt kein Beispiel entdecken, wo deren Methode
Verwendung gefunden hätte, auch ihr Konverter scheint komplett funktionslos zu sein, also
ist von dem Projekt vermutlich erstmal abzuraten.
Nach dem, was ich eben zu dem verwandten Programm gelesen habe, welches mit
Java arbeitet, kann man natürlich auch gleich die CSS-Datei effektiv schreiben, so viel stellt
das Teil nicht an, der Effekt dürfte im Schnitt viel kleiner sein als mit oben beschriebener
richtiger Kompression. Dies Teil macht ja offenbar nur Kosmetik wie das Entfernen von
Leerzeichen und Kommentaren, gar keine richtige Kompression.
Wenn du selbst die Kommentare und Leerzeichen lesen willst, solltest du ansonsten vielleicht
einfach die unbehandelte Datei zuhause behalten und die kosmetisch behandelte hochladen.

das ist natürlich die einfachste Lösung. Ist zwar etwas umständlich, falls die CSS öfters bearbeitet wird, aber was solls.

Du könntest PHP cssmin verwenden. Beim Aufruf der PHP-Datei wird überprüft, ob das css aktualisiert wurde. Wenn neues css da ist, wird es minimiert und in eine Datei geschrieben, ansonsten direkt die minimierte Datei ausgegeben.

code.google.com/p/cssmin/

Dateien:
style.css (original css)
style.min.css (minimiertes css)
style.php (falls nötig minimiert style.css, speichert nach style.min.css. Ansonsten sendet nur style.min.css)
Im html dann <style href=“style.php”…