Dynamische Style Sheets

Ja, die Benutzung einer "Bootstrap" Datei ist gut und angenehm.
Aber du solltest dir vor Augen halten, dass deine Bootstrap Datei unterschiedlichen Inhalt ausgibt. Als Beispiel:
index.php?action=news ist ein anderer Inhalt als
index.php?action=guestbook (rein fiktive Seiten).
Und somit werden beide einen eigenen Cache Eintrag bekommen. Wenn jetzt beide die CSS Datei komplett im <head> haben, wird er auch zwei mal gecached, bzw. n-mal gecached bei n Seitenaufrufen.
Im Gegensatz dazu wird die externe css Datei nur einmal gecached (optimalerweise).

Aber das wird hier alles etwas offtopic ;)
 
Ahh... Ich verstehe was du meinst...
Ich versuche sowieso irgendwie den Cache zu umgehen, weil ich öfters 5mal reloaden muss, bis ich endlich die Änderungen des letzten Uploads sehe...

Bislang benutze ich dafür folgenden Code im Head:
Code:
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

Reicht das oder müsste ich das noch irgendwie anders machen
 
Normalerweise reicht das.

Zusätzlich könntest du an die CSS Datei die letzte Modifizierungszeit anfügen.

PHP:
<link href="stylesheet" type="text/css" href="./style.css?<?php echo filemtime('./style.css'); ?>">
Sobald die Datei modifiziert wird, ist es also ein anderer Aufruf und der Browser sollte sie neu cachen.
 
Gut, gut...
Hab natürlich grade mal ganz fix YSlow in Betrieb genommen und auch gleich mal meine Site damit gecheckt...
Der sagt mir, dass einige der Daten nicht vom Cache Expire erfasst seien, also für diese ein solches nicht existiert...

Um dann auch mal wieder back to topic zu kommen nun ne ganz elegante Überleitung ^^

PHP:
<link href="stylesheet" type="text/css" href="./style.css?<?php echo filemtime('./style.css'); ?>">

ermöglicht aber keinen flexiblen aufbau der css-Datei... Weil es eine feste Datei sein muss, deren Zeit ausgelesen wird...
Aber es geht ja letztlich darum die css aus ner DB zu laden, um sie dementsprechend flexibel handhaben zu können...

Die große Frage des Threads lautet demnach:
Wie erstelle ich variable CSS?

[EDIT]
Ne Idee, die mir grade in den Sinn kommt wäre, die CSS-Daten in der DB zu speichern, einmalig auszulesen und die entsprechende CSS-Datei aufm Server erstellen zu lassen...
Wenn die Daten in der DB geändert werden, dann wird die Datei mit den neuen Daten neu geschrieben...

Oder bin ich da aufm Holzweg?
 
[EDIT]
Ne Idee, die mir grade in den Sinn kommt wäre, die CSS-Daten in der DB zu speichern, einmalig auszulesen und die entsprechende CSS-Datei aufm Server erstellen zu lassen...
Wenn die Daten in der DB geändert werden, dann wird die Datei mit den neuen Daten neu geschrieben...

Oder bin ich da aufm Holzweg?
Das wäre sicher die sinvollste Variante :)
(wird hier im Forum auch so gemacht)
 
Die HTML-Metaangabe gilt übrigens nur für das aktuelle HTML-Dokument, nicht jedoch für die externen Ressourcen.
 
Wenn auf dem Webserver zulässig könntest du auch mit einer htaccess datei mit solchem inhalt:

Code:
<Directory /home/user1/css>
Add-Type xhtml php,php3,php5,css
</Directory>

in der .css Datei auch php verwenden.

Oder aber du verwendest Mod-Rewrite verwenden um eine PHP als css file aussehen zu lassen.
 
Wenn dann richtig:
Code:
<Directory /home/user1/css>
    AddType application/x-httpd-php php php3 php5 css
</Directory>
 
Wie verpass ichn dann dem Rest das Cache-Timeout?
Hab in der HTML-Site die styles.css drin mit typischen HTML-Tag halt...
In der styles.ccs importe ich dann die eigentlichen CSS-Dateien...
 
Ahhh....
LÖSUNG GEFUNDEN

Ich studiere grad die phpMyAdmin-Skripte, da ich nach dem Code des DB-BackUps suche...
Dabei stolperte ich über die CSS...

Und dort habe ich die Lösung unseres Problems gefunden :D

Einbinden der Datei:
PHP:
<link rel="stylesheet" type="text/css" media="print" href="../meinecssfile.css.php" />

So funktioniert es ^^

Wenn in der meinecssfiel.css.php:
PHP:
<?php
// Ich hol mir den ganzen CSS , den ich brauche aus der DB...
// Nun sorgen wir für richtige Interpretation:
// Send correct type:
header('Content-Type: text/css; charset=ISO-8859-1');

// Cache output in client - the nocache query parameter makes sure that this
// file is reloaded when config changes
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');
?>
/*
Hier kommen nun alle CSS-Infos ;)
*/
div.blubber
(
width: <?php echo $weitedesdivlautDB ?>;
)

Damit ist die CSS-File flexibel via PHP geschrieben...

Der HEADER ist korrekt geschickt, sodass alles als CSS erkannt wird!

Die Cache-Regel ist gesetzt! <- Die angesprochene Performance!!

Wenn ich mich täusche kann ich sagen:
LÖSUNG! Oder!? xD
 
Zurück